我使用实体框架与层次结构中的多个现有数据库。
我的目标是拥有两个数据库上下文,一个用于支持父级,另一个用于支持子级。我还打算在两种情况下都设置并启用自动迁移。
我的子上下文传入连接字符串名称以确定要创建的子连接
/// <summary>
/// Represents a child database context within a hierarchy
/// </summary>
public class ChildDbContext : DbContext
{
public ChildDbContext(string name) : base(name)
{
Database.SetInitializer(new MigrateDatabaseToLatestVersion<ChildDbContext, Migrations.Configuration>());
}
}
问题
自动迁移会在第一次访问时更新每个子数据库,即我第一次new ChildDbContext("Child1")
,new ChildDbContext("Child2")
,new ChildDbContext("Child3")
吗?
我不能100%确定实际执行迁移检查,或者在没有无参数构造函数的情况下它是否可以正常工作。
答案 0 :(得分:0)
EF通过检查从连接类型和连接字符串生成的密钥的字典来确定是否需要初始化数据库。所有这一切都表明应该为每个数据库执行迁移。
请参阅System.Data.Entity.Internal.LazyInternalContext
InitializeDatabaseAction