Entity Framework 4.1 ускоренная загрузка абстрактных классов

#entity-framework #eager-loading

#entity-framework #ускоренная загрузка

Вопрос:

Я использую EF 4.1 в подходе Code First. У меня есть абстрактный класс:

 public abstract class Base
{
}
  

И два удаленных класса:

 public Class Derived1 : Base
{
     public Division division{ get; set; }
}

public Class Derived2 : Base
{
     public Brand brand{ get; set; }
}
  

Наконец, у меня есть запрос, который выбирает список базового класса, и я хочу выполнить быструю загрузку, но я не знаю, кто мои производные классы:

 using (var db = new MyContext())
{
     var lst = db.Base.Include(WHAT SHOULD I WRITE HERE).ToList();
}
  

Есть идеи?

Ответ №1:

Вы должны сделать это:

 var lst = db.Base.OfType<Derived1>().Include(d => division)
            .Union(
               db.Base.OfType<Derived2>().Include(d => d.brand))
            .ToList();