我是Entity框架核心1的新手,这是我第一次使用.NET核心开发WebApp,之前我只使用传统的asp.net,您可以使用图形设计器开发模型,或者只使用现有的模型生成模型数据库(我知道这些东西也可以在.net核心中完成,但不像在.net 4中那样简单)
我有一个复杂的数据库模型,有许多一对多和多对多的关系,它在开发过程中有很多变化,现在我正在尝试生成一个管理所有模型的简单数据库。包括我的自定义模型和ApplicationUser模型。我需要找到如何解散这个默认的IdentityDbContext:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
// Customize the ASP.NET Identity model and override the defaults if needed.
// For example, you can rename the ASP.NET Identity table names and more.
// Add your customizations after calling base.OnModelCreating(builder);
}
}
进入:
public class MyDbContext : DbContext
{
public MyDbContext(DbContextOptions<MyDbContext> options) : base(options)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
}
}
我已经搜索了stackoverflow以获取我的答案,一些答案为不同的表建议了不同的DbContexts,或者使用不同的数据库创建了我的网站。我没有找到这个好主意。维护多个数据库是低效的,并且考虑到几乎所有的表都与具有不同DbContext的关系相关联也不是很可爱。
和其他答案说我的所有工作都可以在一个DBContext中完成,我记得有一个答案说IdentityDbContext中只有2个额外的变量(ApplicationUsers和Roles),但没有一个答案提到如何将这2个元素放入MyDbContext。我的问题简直就是如何做到这一点(这个问题已经很久了,因为我想说清楚我不是在寻找替代方法)