CodeFirst+MySQL+.Net Core配置详情

时间:2024-01-10 11:06:26

EF 基础操作:http://www.cnblogs.com/M-LittleBird/p/5852395.html

一、使用CodeFirst模式

1、在需要添加的项目上右键点击选择添加ADD.NET 实体数据模型。

CodeFirst+MySQL+.Net Core配置详情

2、选择模型内容,选择CodeFirst模型,选择自己需要的类型,这里我选择空的CodeFirst模型

CodeFirst+MySQL+.Net Core配置详情

3、选择模型后再当前项目中生成 会默认引用 ef 相关 dll,还需要添加mysql相关dll,使用NuGet 安装mysql

CodeFirst+MySQL+.Net Core配置详情

CodeFirst+MySQL+.Net Core配置详情

添加成功后再项目中会生成以下两个文件

CodeFirst+MySQL+.Net Core配置详情

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"
}
}
}