Если ваше приложение работает только с одной базой данных, вы можете просто использовать оператор IF в OnModelCreating, который использует Fluent API, чтобы .Ignore () отсутствующие свойства.
public class MyDbContextWithMissingColumns: MyDbContext
{
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
if (myConfig.UseDatabaseWithoutSomeProperties)
{
modelBuilder.Entity<Foo>().Ignore(f => f.SomeProperty);
}
base.OnModelCreating(modelBuilder);
}
}
Если один экземпляр вашего приложения подключается к обеим базам данных, вам нужно использовать отдельный подтип DbContext, поскольку OnModelCreating запускается только для первого экземпляра типа DbContext в домене приложения.
EG:
public class MyDbContextWithMissingColumns: MyDbContext
{
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Foo>().Ignore(f => f.SomeProperty);
base.OnModelCreating(modelBuilder);
}
}