Entity Framework 6 выдает исключение для отсутствующей таблицы SQL, которая не требуется для DbContext - PullRequest
0 голосов
/ 12 июня 2019

Я создал 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, которая включает в себя дополнительное поле, отсюда моя попытка наследования для решения проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...