【问题标题】:Code First Migrations with two DataContext具有两个 DataContext 的代码优先迁移
【发布时间】:2014-02-11 00:24:42
【问题描述】:

在我的应用程序中,我有两个 DataContext,默认创建的 ApplicationDbContext,它继承自我的模型的 IdentityDbContext 和 DomainContext。现在我在使用迁移更新数据库时遇到了一些问题,当我执行时 在创建的迁移文件中添加迁移到 DomainContext 包含删除与 ApplicationDbContext 相关的所有表的代码。我已经用谷歌搜索了,但我还没有找到任何令人满意的答案,唯一合理的解决方案建议混合两个 DBContext,但这对我来说听起来很奇怪,因为 ApplicationDbContext 继承自 IdentityDbContext。

    public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base( "DBContextConnString" )
    {
    }
}

    public class DomainContext:DbContext {

    public DomainContext() : base( "DBContextConnString" ) { }

    public DbSet<State> States { get; set; }

    protected override void OnModelCreating( DbModelBuilder modelBuilder ) {
        modelBuilder.HasDefaultSchema( "Workflow" );
        base.OnModelCreating( modelBuilder );
    }
}

EF6 公开的新功能之一指出“在使用迁移或 Code First 自动为您创建数据库时,每个数据库的多个上下文消除了以前每个数据库一个 Code First 模型的限制。” (Read it here)。但在实践中实现这一点很痛苦,或者我可能遗漏了一些非常明显的东西。

简而言之,我的问题是如何让这两个不同的 DBContexts 共存?

【问题讨论】:

    标签: entity-framework


    【解决方案1】:

    经过一些实验,我得出结论,更实用的方法是将两个 DbContext 混合为一个,因此我决定将我的域实体移动到 IdentityDbContext。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-26
      • 1970-01-01
      • 1970-01-01
      • 2014-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多