CodeFirst+MySQL+.Net Core配置详情
EF 基础操作:http://www.cnblogs.com/M-LittleBird/p/5852395.html
一、使用CodeFirst模式
1、在需要添加的项目上右键点击选择添加ADD.NET 实体数据模型。
2、选择模型内容,选择CodeFirst模型,选择自己需要的类型,这里我选择空的CodeFirst模型
3、选择模型后再当前项目中生成 会默认引用 ef 相关 dll,还需要添加mysql相关dll,使用NuGet 安装mysql
添加成功后再项目中会生成以下两个文件
4、修改App.config中的 数据库连接字符串
mysql
<connectionStrings> <add name="MyContext" connectionString="server=127.0.0.1;user id=root;password=;persistsecurityinfo=True;database=schedule" providerName="MySql.Data.MySqlClient" /> </connectionStrings>
sql server
<connectionStrings> <add name="MyContext" connectionString="Data Source=.;Initial Catalog=xxxx;Persist Security Info=True;User ID=xx;Password=xxx;Connect Timeout=120;" providerName="System.Data.SqlClient" /> </connectionStrings>
5、重名名 Model1 为 MyContext 并修改内容,修改如下
namespace BooksStore.Domain { using MySql.Data.Entity; using System; using System.Data.Entity; using System.Linq; [DbConfigurationType(typeof(MySqlEFConfiguration))] public class MyContext : DbContext { //您的上下文已配置为从您的应用程序的配置文件(App.config 或 Web.config) //使用“Model1”连接字符串。默认情况下,此连接字符串针对您的 LocalDb 实例上的 //“BooksStore.Domain.Model1”数据库。 // //如果您想要针对其他数据库和/或数据库提供程序,请在应用程序配置文件中修改“Model1” //连接字符串。 public MyContext() : base("name=MyContext") { } //为您要在模型中包含的每种实体类型都添加 DbSet。有关配置和使用 Code First 模型 //的详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=390109。 //这是示例 改为自己的实体类 public virtual DbSet<MyEntity> MyEntities { get; set; } } //这是示例 改为自己的实体类 public class MyEntity { public int Id { get; set; } public string Name { get; set; } } }
注:实例类名称建议同数据库表名保持一致,这里默认把类名当作数据库表名。
ASP.NET CORE 中配置
直接复制上面的MyContext类到core项目中。
使用NuGet添加包:Pomelo.EntityFrameworkCore.MySql。
在Startup类中注册服务,修改如下:
public void ConfigureServices(IServiceCollection services) { services.AddMvc(); //注册mysql服务 services.AddDbContext<SMContext>(options => options.UseMySql(Configuration["ConnectionStrings:DefaultConnection"])); }
在appsettings.json中添加数据库字符串配置,配置如下:
{ "ConnectionStrings": { "DefaultConnection": "server=127.0.0.1;user id=root;password=123456;persistsecurityinfo=True;database=schedule", "DotNetCoreConnection": "Server=(localdb)\\mssqllocaldb;Database=DotNetCoreDb;Trusted_Connection=True;MultipleActiveResultSets=true" }, "Logging": { "IncludeScopes": false, "LogLevel": { "Default": "Warning" } } }