如何在我想要的ASP.NET Core 2.0中获取DbContext实例? 为了连接数据库,我使用了服务
string connection = Configuration.GetConnectionString("DefaultConnection");
services.AddDbContext<MobileContext>(options => options.UseSqlServer(connection));
答案 0 :(得分:1)
这在documentation中有描述:
节选:
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>>();
答案 1 :(得分:0)
public class BloggingContext : DbContext
{
public BloggingContext(DbContextOptions<BloggingContext> options)
: base(options)
{ }
public DbSet<Blog> Blogs { get; set; }
}
您的应用程序现在可以在实例化上下文时传递DbContextOptions,如下所示:
var optionsBuilder = new DbContextOptionsBuilder<BloggingContext>();
optionsBuilder.UseSqlite("Data Source=blog.db");
using (var context = new BloggingContext(optionsBuilder.Options))
{
// do stuff
}