Я создал DbContext, похожий на приведенный ниже
public class ProductsDB : DbContext
{
public virtual DbSet<Product> Products { get; set; }
//..other stuff..
}
Вот продукт;
[Table("product")]
public class Product
{
[Column("Product_ID")]
public int ID { get; set; }
//other fields...
}
Все это прекрасно работает, пока я не создаю класс, который наследуется от "Продукта";
[Table("CentralProducts")]
public class CentralProduct : Product
{
//fields...
}
Когда я запускаю интеграционные тесты, я получаю сообщение об ошибке, в котором говорится, что dbo.CentralProducts не существует.Это не так, и для базы данных, к которой подключается ProductsDB, я этого не хочу.
Я пробовал различные варианты наследования, но они либо требуют добавления таблицы в мою базу данных, либо добавления столбца дискриминатора в таблицу Product.
Я надеялся, что, так как мойконтекст не потребляет CentralProducts, он не требует его существования.Я использовал наследование таблиц для каждого типа , поэтому не должно быть необходимости в чем-то, что потребляет dbo.Product, чтобы иметь доступ к dbo.CentralProduct.Есть ли способ настроить EF6 для этого?
Причина, по которой я пытаюсь это сделать, заключается в том, что у меня есть две базы данных, каждая с общим набором таблиц.Я хотел бы создать два DbContexts, по одному для каждой базы данных, каждый из которых содержит основные сущности, но также включает в себя несколько различий.В этом конкретном случае второй DbContext имеет таблицу Product, которая включает в себя дополнительное поле, отсюда моя попытка наследования для решения проблемы.