ASP.NET Core + EF6
2016-06-30 19:58
429 查看
微软推出了全新的 .Net Core,于是我就想着在目前接手的项目中使用这项新技术。但是因为预算的原因,我们所用的数据库是 MySql 。但是最新的 EF Core 并不支持 MySql ,所以目前我还是使用的 EF6 。然而微软官网并没有这方面相关的例子,所以今天折腾了一整天,终于把 EF 6 成功配置在了 .Net Core 项目中。
一个根据 Code First 定义的
出于简单,我们就直接在
这样的话,我们就完成了连接!
而且在之前的 MVC 4 的项目中,我们是在 web.config 文件中定义的连接字符串,所以我们在 .Net Core 中的如何使用类似的方式来做呢?
然后我们在控制器中通过构造函数注入
然后我们在 appsettings.json 文件中定义一下连接字符串
然后在 Startup.cs 文件中的
至此,我们就可以在配置文件中修改连接字符串了!
参考文章:
重构 ASP.NET 5/EF6 项目和依赖关系注入
准备
VS 2015 中新建一个 ASP.NET Core 项目(由于EF 6 不支持 CoreCLR,所以使用 .Net Framework)一个根据 Code First 定义的
DbContext类以及相应的
Entity类(由于目前的 VS 2015 在 ASP.NET Core 项目中不能直接由数据库生成 Code First 代码,所以我们需要自己手写 Code First 类)
使用
现在来看看我定义的DbContext类
public partial class ParkDbContext : DbContext { public ParkDbContext() : base("Data Source=DESKTOP-M31J37E;Initial Catalog=moneyManager;User ID=zeeko;Password=*******") { } public virtual DbSet<LoginInfo> LoginInfo { get; set; } public virtual DbSet<IncomeAndSpending> IncomeAndSpending { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<IncomeAndSpending>() .Property(e => e.Type) .IsUnicode(true); } }
出于简单,我们就直接在
Controller中使用
public class TestController : Controller { private ParkDbContext dbContext=new ParkDbContext(); public string Index() { var result = ( from item in dbContext.IncomeAndSpending select item ).FirstOrDefault(); return result.Type; } }
这样的话,我们就完成了连接!
重构
上面的做法其实是不好的,如果后期我们需要更换数据库,我们需要修改DbContext类,这样做是不对的。
而且在之前的 MVC 4 的项目中,我们是在 web.config 文件中定义的连接字符串,所以我们在 .Net Core 中的如何使用类似的方式来做呢?
重构
首先,我们需要将DbContext的构造函数改造一下
public ParkDbContext(string connectionString) : base(connectionString) { }
然后我们在控制器中通过构造函数注入
public TestController(ParkDbContext context) { dbContext = context; }
然后我们在 appsettings.json 文件中定义一下连接字符串
{ "ConnectionStrings": { "DefaultConnection": "Data Source=DESKTOP-M31J37E;Initial Catalog=moneyManager;User ID=zeeko;Password=windows10zt" }, "Logging": { "IncludeScopes": false, "LogLevel": { "Default": "Debug", "System": "Information", "Microsoft": "Information" } } }
然后在 Startup.cs 文件中的
ConfigureServices方法中注册一下
public void ConfigureServices(IServiceCollection services) { // Add framework services. services.AddMvc(); services.AddScoped(sp => new ParkDbContext(Configuration["ConnectionStrings:DefaultConnection"])); // Add application services. }
至此,我们就可以在配置文件中修改连接字符串了!
后续
接下来,我会试着连接到 MySql参考文章:
重构 ASP.NET 5/EF6 项目和依赖关系注入
相关文章推荐
- Spring框架 AspectJ注解配置(四)
- c# winForm使用Aspose.Cells读取CSV文件中文乱码问题
- .NET跨平台之旅:将示例站点升级至ASP.NET Core 1.0
- 银联支付 Asp.Net 对接开发内容简介
- ASP.NET中URL Routing和IIS上URL Rewriting的区别
- 当前标识没有对“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files”的写访问
- Asp.Net生成RSS方法
- 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递
- Spring AOP之@Aspect注解,参考文章地址
- 【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目 (11)文件管理
- asp.net MD5 加密
- ASP.NET程序中设置相对路径的方法
- ASP.NET程序中设置相对路径的方法
- Spring AspectJ切入点语法详解
- Spring 基于Aspectj切面表达式
- 树莓派使用sim800过程中的一些小结
- asp 文档缓存尚在构建中
- asp.net 输入框在chrome中无法关闭自动提示
- ASP.NET(get和post比较)
- 血液中心最长最短通话抽检报表