2016-05-03 2 views
0

У меня есть основной тип модели, называемый «Организация», который имеет несколько подтипов. В Entity Framework мы сохраняем его с помощью таблицы для каждого типа. Теперь некоторые подтипы также имеют свойства NavigationProperties для соответствующей информации, которую я хотел бы загрузить, в зависимости от типа. Проблема: я не могу определить конкретный DbSet типа Organization-Type, так как я не знаю этого в то время, когда мне придется. Так что в принципе, мне нужно сказать EF: если вы загружаете организацию этого типа, включите SubType1, если это другой тип, SubType2 и т. Д.Entity Framework: Включить свойство в зависимости от подтипа

Если я делаю это tradionallty, EF стонет, потому что Type " Организация "не знает навигационных свойств подтипов.

Есть ли возможность комбинировать полифосфит EF с возможностью включения конкретных таблиц?

ответ

0

просто добавьте это в DbContext, и вы можете определить любую деталь в вашем подтипе просто убедитесь, что вы используете, по крайней мере EF 6,0

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
     { 

      //inhertance table per type 
      modelBuilder.Entity<Reponse>().ToTable("Organisation"); 
      modelBuilder.Entity<ReponseChoix>().ToTable("Subtype1"); 
      modelBuilder.Entity<ReponseSimple>().ToTable("Subtype2"); 


     } 
Смежные вопросы