1、使用NuGet包管理器下载Microsoft.EntityFrameworkCore相关包
因为.NET Core中默认不包含EF Core的工具和程序包,需要通过NuGet管理器安装对应工具和程序包。这里使用Sql Server数据库,因此将安装以下程序包:
- Microsoft.EntityFrameworkCore.SqlServer:Sql Server数据库EF提供程序
- Microsoft.EntityFrameworkCore.Design:设计时EF共享库
- Microsoft.EntityFrameworkCore.Tools:EF的NuGet包管理器命令工具
2、在NuGet包管理器控制台中执行从数据库生成模型类的命令:
命令格式:
Scaffold-DbContext ‘连接字符串’ 数据提供程序名称 -OutputDir 结果输出文件夹 -Context 数据上下文名 –DataAnnotations
例如:
Scaffold-DbContext 'Data Source=.\SQL2017;Initial Catalog=ShoppingDB; Integrated Security=True;' Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Context ShopContext
3、修改Startup类文件,注册DBContext依赖服务。
(a)导入命名空间
using Microsoft.EntityFrameworkCore;
(b)在ConfigureServices()方法中注册
//注册上下文对象
services.AddDbContext<ShopContext>(options =>
{
options.UseSqlServer(Configuration.GetConnectionString("ShopDB"));
});
4、在控制器的构造方法中,获取注入的数据上下文对象
public class HomeController : Controller
{
private ShopContext context;
public HomeController(ShopContext db)
{
context = db;
}
}
5) 在控制器的Action方法中,执行数据库操作。
public IActionResult Index()
{
var prodList = context.Products.Include("Category").ToList();
return View(prodList);
}