欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

EF Core

程序员文章站 2024-01-04 13:22:10
...

使用EF Core

1)使用NuGet包管理器下载Microsoft.EntityFrameworkCore相关包

因为.NET Core中默认不包含EF Core的工具和程序包,需要通过NuGet管理器安装对应工具和程序包。这里使用Sql Server数据库,因此将安装以下程序包:

Microsoft.EntityFrameworkCore.SqlServer:Sql Server数据库EF提供程序
Microsoft.EntityFrameworkCore.SqlServe.Design:设计时EF共享库
Microsoft.EntityFrameworkCore.Tools:EF的NuGet包管理器命令工具

2)在NuGet包管理器控制台中执行从数据库生成模型类的命令:

Scaffold-DbContext ‘连接字符串’ 数据提供程序名称 -OutputDir 结果输出文件夹 -Context 数据上下文名 –DataAnnotations
例如1:

Scaffold-DbContext  'Data Source=.\SQL2017;Initial Catalog=ShoppingDB; Integrated Security=True;' Microsoft.EntityFrameworkCore.SqlServer  -OutputDir Models  -Context ShopContext

例如2:

Scaffold-DbContext  'Data Source=.\SQL2017;Initial Catalog=ShoppingDB; uid=sa;pwd=123456;' Microsoft.EntityFrameworkCore.SqlServer  -OutputDir Models  -Context ShopContext

如出现以下问题:Could not load assembly ‘0812Test’. Ensure it is referenced by the startup project ‘WebApplication1’.需要添加对“0812Test”的引用

3)修改Startup类文件,注册DBContext依赖服务
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);
}
相关标签: .net c# .net

上一篇:

下一篇: