У меня есть модель EF6.1 EDMX (Database First), и я использую наследование TPT для нескольких типов (например, Employee: Person), однако в сгенерированном классе Model.Context.cs
у меня есть только классы DbSet<T>
для моих базовых типов, а не для наследования. . Есть ли что-то, что нужно (или можно) сделать для модели EDMX или шаблонов T4, чтобы также сгенерировать DbSet<T>
для наследуемых классов?
EF Database First с наследованием TPT создает DbSet‹T› только для базовых классов.
Ответы (1)
Вы можете получить подтипы из контекста с помощью
context.People.OfType<Employee>()
или вы можете расширить контекст с помощью частичного класса, в котором вы определяете свойства для подтипов DbSet:
partial class Context
{
public DbSet<Employee> Employees { get; set; }
}
Это намного проще, чем изменение шаблона t4, потому что стандартные шаблоны t4 могут измениться в будущих выпусках, поэтому вам придется изменить их снова.
person
Gert Arnold
schedule
09.04.2014
Не думал о реализации частичного класса. Большое тебе спасибо.
- person Vesselin Obreshkov; 10.04.2014