在ASP.NET Core项目中配置EF Core
2021-01-30 09:15
标签:配置 aging config 依赖 ram 其他 格式 security source 参考资料: 添加一个Web API项目并设为启动项目,并添加对Demo.Data和Demo.Domain的引用。 为该项目安装Microsoft.EntityFrameworkCore.SqlServer库。 删掉原DbContext中override的OnConfiguring()方法。我看的其他教程中常常都只在OnConfiguring()中配置,而不讲真正的配置方法,让新手非常困惑。杨旭大佬的教程果然最贴合实际。 在DbContext中建立构造函数,有一个 回到Web项目中,打开appsettings.json,添加一个配置集合: 因为我们可能有开发环境数据库,Staging环境数据库,UAT环境数据库,正式环境数据库等,所以"ConnectionStrings"是一个集合,先给当前用的数据库取名"LocalDB"。 打开Startup.cs,在ConfigureServices方法(相当于是个容器)进行配置,配置使用EF Core和SqlServer Provider。 其中还用到了取配置文件的一种方法, 配置好之后,DemoDbContext就可以依赖注入着使用了。 去Web API项目自带的WeatherForecastController控制器中,在构造函数中依赖注入DemoDbContext,并生成只读字段来使用: 修改一下下面的HttpGet方法: 运行项目,可以看到查出来的内容以JSON格式呈现。 得益于我们把Context所在的项目单独分了出来,否则我们从控制台换到Web项目,可能还要重新迁移。 在ASP.NET Core项目中配置EF Core 标签:配置 aging config 依赖 ram 其他 格式 security source 原文地址:https://www.cnblogs.com/Kit-L/p/13196744.html
微软MVP杨旭教程:https://www.bilibili.com/video/BV1xa4y1v7rR?p=11
准备工作
DbContextOptions
类的参数options,顺便用base()
调用父类的构造函数,并把Options传进去,就可以了:public DemoDbContext(DbContextOptions
Web项目中的配置
"ConnectionStrings": {
"LocalDB": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=YangDemo;Integrated Security=True"
}
public void ConfigureServices(IServiceCollection services)
{
...
services.AddDbContext
Configuration.GetConnectionString("LocalDB")
中Configuration可能是配置文件对应的对象,GetConnectionString取配置文件中名为"ConnectionStrings"的配置项,然后在参数中指定ConnectionStrings中名为"LocalDB"的项。上面这几项搞出连接字符串,作为UseSqlServer()
的参数。测试配置是否成功
...
private readonly DemoDbContext _dbContext;
public WeatherForecastController(..., DemoDbContext dbContext)
{
...
_dbContext = dbContext;
}
[HttpGet]
public IActionResult Get()
{
var clubs = _dbContext.Clubs.ToList();
// var result = JsonSerializer.Serialize(clubs);
return Ok(clubs);
}