.NET Core配置/添加Entity Framework Core及对应数据库扩展包
NuGet安装EF Core
安装 Microsoft.EntityFrameworkCore
包(不要安装 EntityFramework
包)
NuGet安装EF Core对应数据库扩展包
安装途径:先去EF官方文档上(戳这里),找到自己使用的数据库对应的NuGet程序包再进行安装
-
如果使用
mysql
则安装Pomelo.EntityFrameworkCore.Mysql
包(不要安装Mysql.Data.EntityFrameworkCore
) -
如果使用
PostgreSQL
作为底层存储,则安装Npgsql.EntityFrameworkCore.PostgreSQL
包(不要安装Npgsql
)
配置步骤1 - 配置EF Core
-
新建
Database
文件夹,存放和EF Core相关配置信息/代码 -
创建数据库映射工具:在
Database
文件夹下创建AppDbContext.cs
文件(上下文关键对象 理解为代码和数据库之间的连接器) -
让AppDbContext继承EF Core中的DbContext
public class AppDbContext : DbContext
- 注入
DbContext
的实例
public AppDbContext(DbContextOptions<AppDbContext> options) : base(options)
{
}
- 指明哪些模型需要映射到数据库中:使用
DbSet
进行数据模型映射,每个数据模型都要用一个dbset来映射给数据库表table
public DbSet<TouristRoute> TouristRoutes { get; set; } // TouristRoutes - 数据库名称
配置步骤2 - 配置数据库
- 把
AppDbContext
对象注入到系统的 IOC 容器中,在Startup.cs
中的ConfigureServices
中。(别忘了在appsetting.json
文件中配置数据库相关信息)
services.AddDbContext<AppDbContext>(options =>
options.UseMySql(Configuration.GetConnectionString("mysql_connect"), new MySqlServerVersion(new Version())));
- 在 中加入配置函数,并在配置函数中注入服务依赖
public IConfiguration Configuration { get; } // 创建一个私有变量储存配置信息,没有set是因为一会在下面的构建函数中给它赋值
/// <summary>
/// 注入配置服务依赖
/// Startup就可以通过成员变量configuration来访问appsetting.json
/// </summary>
/// <param name="configuration"></param>
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
创建对应数据仓库
-
新建数据仓库:在 Services 文件夹下创建控制器对应的 xxxRepository.cs 文件
-
在 Startup.cs 文件夹中添加注入依赖:
services.AddTransient<ITouristRouteRepository, TouristRouteRepository>();
使用EF Core创建数据库及初始化数据
-
验证一下数据模型(添加数据库限制、主键信息、外键联系等),判断是否符合数据库创建要求
-
安装数据库创建工具
Entity Framework Core Tools
,支持三种数据库的创建方式Database First
(先创建数据库,再和数据库连接)、Model First
(先创建数据模型Model
,再根据Model
自动生成数据库)、Code First
(不创建实体模型,通过dbcontext
创建数据库) -
创建数据库前先
build
构建一下项目 -
我们使用
Model First
模式,dontnet 相关命令如下:
dotnet tool install --global dotnet-ef # 安装dotnet cli ef 工具
dotnet ef migrations add [此次操作名称]
dotnet ef database update