在以下代码中,我不明白为什么我们在ApplicationDbContext
之后解决了DbContextOptions
namespace SportsStore.Models
{
public class ApplicationDbContext : DbContext
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext>options)
: base(options)
{
}
public DbSet<Product> Products { get; set; }
}
}
基类构造的定义是:
public DbContext([NotNullAttribute] DbContextOptions options);
上面代码中的 ApplicationDbContext 是一个属性吗?或者它是泛型类型,为什么我们应该在这里使用泛型类型?因为在官方文件中实施建筑时,提到:
DbContext使用的选项。你通常会覆盖 DbContext.OnConfiguring(DbContextOptionBuilder)或使用 DbContextOptionBuilder创建此类的实例...
如果我们想根据Microsoft官方文档配置派生类构造我们应该如何进行?
答案 0 :(得分:0)
这样您就可以使用依赖注入来实例化您的上下文,即通过AddDbContext
扩展方法。在OnConfiguring
中,您可以检查IsConfigured
属性是否通过构造函数(options
参数)查看上下文。 DbContextOptions<T>
只是扩展DbContextOptions
并且没有带来任何新内容,但是通过这种方式,您可以看到它与特定的DbContext
相关联。
请参阅https://docs.microsoft.com/en-us/dotnet/api/microsoft.entityframeworkcore.dbcontext.onconfiguring?view=efcore-2.0。