C# 是否有必要为共享表的所有上下文创建迁移(如果启用了迁移)?
请参阅下面的代码,这是我从在线教程中借用的:C# 是否有必要为共享表的所有上下文创建迁移(如果启用了迁移)?,c#,entity-framework,ef-code-first,entity-framework-6,C#,Entity Framework,Ef Code First,Entity Framework 6,请参阅下面的代码,这是我从在线教程中借用的: public class OrderReadContext: DbContext { public OrderReadContext() : base("name=GeekStuffSales") { } public DbSet<SalesOrder> Orders { get; set; } protected override void OnModelCreating(DbMo
public class OrderReadContext: DbContext
{
public OrderReadContext() : base("name=GeekStuffSales") {
}
public DbSet<SalesOrder> Orders { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
modelBuilder.HasDefaultSchema("Order");
}
}
public class OrderSystemContextConfig : DbConfiguration
{
public OrderSystemContextConfig() {
SetDatabaseInitializer(new NullDatabaseInitializer<OrderReadContext>());
}
}
这将仅为WriteContext创建迁移。ReadContext现在是否需要迁移
问题
我对迁移的理解如下。如果启用迁移,则覆盖默认值-如果要设置默认值或外键,则可以执行此操作。如果为一个上下文而不是另一个上下文创建迁移,会发生什么
public class OrderWriteContext : DbContext
{
public OrderWriteContext() : base("name=GeekStuffSales")
{
}
public DbSet<SalesOrder> Orders { get; set; }
public DbSet<LineItem> LineItems { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.HasDefaultSchema("Order");
modelBuilder.Entity<SalesOrder>().Ignore(s => s.LineItems);
}
}
public class OrderSystemContextConfig : DbConfiguration
{
public OrderSystemContextConfig()
{
SetDatabaseInitializer(new NullDatabaseInitializer<OrderWriteContext>());
}
}
enable-migrations -ContextTypeName OrderWriteContext
Add-Migration -configuration MyApp.Context.Configuration Initial