Автоматический тип EF для стратегии отображения таблицы

У нас есть базовый класс Base и несколько унаследованных классов, называемых Derived1 и Derived2. Чтобы разместить классы в отдельных таблицах, мы можем использовать атрибуты или fluentAPI, но в этом случае мы постоянно пишем это при определении новых классов, но новые унаследованные классы часты.

В конце концов, вся работа с базовыми преемниками должна проходить через базы LolContext.

Итак, возможно ли сделать EF отображать все классы, которые наследуются от базы в соответствующих таблицах автоматически?

public class OneContext : DbContext
{
 public DbSet Bases { get; set; }

 public OneContext()
 : base("OneDatabase")
 {

 }
}

public class Base
{
 [Key]
 public int Id { get; set; }

 public int prop1 { get; set; }
}

public class Derived1 : Base
{
 public int prop { get; set; }
}

public class Derived2 : Base
{
 public int prop { get; set; }
}

# Update1

Я уточню свой вопрос.

Есть ли какой-либо метод поместить все наследуемые классы Base в их имена с именем tabels (или какие-то имена или id) без указания атрибута [Table ("")] для каждого нового преемника и определения нового DbSet <> для каждого нового преемника в OneContext?

1 ответ

Невозможно настроить EF для автоматического использования TPT над TPH. Однако единственным требованием для реализации TPT является явное определение имени таблицы для производных классов сущностей (это может быть так же просто, как использование TableAttribute в определении класса). Создание DbSet для производного класса сущности необязательно.

licensed under cc by-sa 3.0 with attribution.