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

ef core如何使用,命令生成的连接字符串注入到startup中

程序员文章站 2022-03-27 08:40:10
通过ef core的db first进行数据库开发时,需要先连接数据库创建ef的模型,ef core通过组件执行命令方式自动生成模型和连接,很方便。我们也可以把连接的字符串注入到startup中进行管理。...

通过ef core的db first进行数据库开发时,需要先连接数据库创建ef的模型,ef core通过组件执行命令方式自动生成模型和连接,很方便。我们也可以把连接的字符串注入到startup中进行管理。

一、 EF Core实体框架核心安装:
工具> NuGet软件包管理器>软件包管理器控制台
Install-Package Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore.Tools
Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design
安装成功后就可以在Nuget依赖项中看到

二、执行一个命令就可以自动生成数据库模型了

Scaffold-DbContext "Server=.;Database=Food;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

该命令会在model的文件夹下生成数据库表的模型对象和数据库上行文文件

现在就可以开始使用ef了,进行数据库的读取操作代码编写了

FoodContext fc = new FoodContext();
List<ProType> ptlist = fc.ProType.ToList();
ViewBag.ptlist = ptlist;
 return View();

三、还可以通过依赖注入装载ef数据库上下文对象

删除掉命令生成的如下代码

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
//#warning To protect potentially sensitive information in your connection string, you should move it out of source code. See http://go.microsoft.com/fwlink/?LinkId=723263 for guidance on storing connection strings.
optionsBuilder.UseSqlServer(@"Server=.;Database=Food;Trusted_Connection=True;");
}

在startup.cs的configureServices方法中添加依赖注入

services.AddDbContext<DBContexts.FuturesContext>(option => {
                option.UseSqlServer("Data Source=.;Initial Catalog=Futures;Persist Security Info=True;User ID=sa;PWD=123");

            }); 

在需要访问数据库的文件中注入上下文对象

private readonly DBContexts.FuturesContext cfc;
        public HomeController(ILogger<HomeController> logger,DBContexts.FuturesContext context)
        {
            _logger = logger;
            cfc = context;
        }

接下来就可以进行数据库的对象访问操作了。

相关标签: ef startup