首页 > 解决方案 > 如何在我想要的 ASP.NET Core 2.0 中获取 DbContext 的实例?

问题描述

如何在我想要的 ASP.NET Core 2.0 中获取 DbContext 的实例?要连接数据库,我使用了服务

string connection = Configuration.GetConnectionString("DefaultConnection");
services.AddDbContext<MobileContext>(options => options.UseSqlServer(connection));

标签: c#entity-frameworkasp.net-coredependency-injection

解决方案


这在文档中有所描述:

摘抄:

EF Core 支持将 DbContext 与依赖项注入容器一起使用。可以使用 AddDbContext 方法将您的 DbContext 类型添加到服务容器中。

AddDbContext 将使您的 DbContext 类型、TContext 和相应的 DbContextOptions 都可用于从服务容器注入。

应用程序代码(在 ASP.NET Core 中):

public class MyController
{
  private readonly BloggingContext _context;

  public MyController(BloggingContext context)
  {
    _context = context;
  }

  ...
}

应用代码(直接使用ServiceProvider,不太常见):

using (var context = serviceProvider.GetService<BloggingContext>())
{
  // do stuff
}

var options = serviceProvider.GetService<DbContextOptions<BloggingContext>>();

推荐阅读