【发布时间】: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