Отображение всех производных типов универсального типа в одну таблицу - PullRequest
0 голосов
/ 11 июня 2019

У меня вопрос по EF Core 2.1

У меня есть базовый тип, назовем его Customer, из которого получены CustomerOld и CustomerNew. Они автоматически сохраняются в одной таблице, пока все хорошо.

Теперь у меня есть универсальный тип для отображения Customer на Product:

public class CustomerToProduct<T> where T : Customer 
{ 
    public int CustomerId { get; set; }
    public T Customer { get; set; }
    public int ProductId { get; set; }
    public Product Product { get; set; }
    ...
}

Производные типы CustomerToProduct не имеют специфических свойств. Я просто хочу использовать их, например, Клиент, к которому я обращаюсь через свойство CustomerToProduct.Customer, производного типа.

Я определил DbSets для производных типов в моем DbContext следующим образом, что, конечно, приводит к отдельным таблицам:

public class MyDbContext : DbContext 
{
    public DbSet<OldCustomerToProduct> OldCustomerToProducts { get; set; }
    public DbSet<NewCustomerToProduct> NewCustomerToProducts { get; set; }
    ...
}

Как хранить все производные типы CustomerToProduct<T> в одной таблице? Как мне определить DbSets<>?

1 Ответ

0 голосов
/ 11 июня 2019

Ваш выглядит как хорошее дополнение для шаблона отображения TPH (Тип на иерархию).Вы можете прочитать больше здесь о теме.

...