EF Core可以使用DB First模式生成实体类具体步骤如下:
1.添加EF Core支持程序包
因为.NET Core中默认不包含EF Core的工具和程序包,需要通过NuGet管理器安装对应的工具和程序包,这里使用SQL Server数据库。
Microsoft.EntityFrameworkCore.SqlServer:SQL Server数据库EF提供程序
Microsoft.EntityFrameworkCore.Design:设计时使用到的EF共享库
Microsoft.EntityFrameworkCore.Tools:EF的NuGet包管理器命令工具
也可以调出【程序包管理控制台】(位置:工具->NuGet 包管理器->程序包管理控制台),选择【默认项目】,输入以下命令安装依赖
Install-package Microsoft.EntityFrameworkCore.Tools
Install-package Microsoft.EntityFrameworkCore.Design
Install-package Microsoft.EntityFrameworkCore.SqlServer
2.通过数据库生成Model
调出【程序包管理控制台】,选择项目,输入以下命令将数据库中所有表生成Model
Scaffold-DbContext 'Data Source=.;Initial Catalog=DB;integrated security=True;' Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Context DBContext
DB:数据库名称
DBContext:数据上下文名称
后续如数据库新增或删减表,在命令后加-Force
Scaffold-DbContext 'Data Source=.;Initial Catalog=DB;integrated security=True;' Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Context DBContext -Force
3.连接字符串写入配置文件
在appsettings.json文件中配置连接字符串
"ConnectionStrings": {
"DBEquipment": "Data Source=.;Initial Catalog=DB;integrated security=True;"
}
4.在Program类中添加数据上下文对象依赖注入服务,并从appsettings.json文件中读取连接字符串配置
using Microsoft.EntityFrameworkCore;
builder.Services.AddDbContext<DBContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DBEquipment")));
5.在Controllers文件夹中创建一个控制器,在该类的构造方法中获取依赖注入的数据上下文对象
private readonly ShopContext _context;
public EquipmentsController(ShopContext context)
{
_context = context;
}