Entity Framework 4.3 - Полиморфный запрос с энергичной загрузкой - PullRequest
3 голосов
/ 15 марта 2012

У меня есть модель, которая выглядит примерно так:

public abstract class Parent
{
    public int Id { get; set; }
}

public class Child11 : Parent
{}

public class Child2 : Parent
{
    public virtual Dependency Dependency { get; set; }
}

public class Dependency
{
    public int Id { get; set; }
    public virtual ICollection<Child2> Children { get; set; }
}

Я пытаюсь выяснить, кому написать запрос Linq, который загружает всех Parents и активно загружает Dependency для всех Child2.Это вообще возможно?Я пробовал каждую комбинацию операторов Linq, о которой только мог подумать, и не добился успеха.

1 Ответ

3 голосов
/ 15 марта 2012

Если вам нужно загрузить только child2, вы можете использовать:

var child2 = context.Parents
                    .OfType<Child2>()
                    .Include(c => c.Dependency)
                    .ToList();

Если вам также нужно загрузить все другие производные типы, вам, скорее всего, потребуется использовать второй запрос или попытаться создать какое-либо объединение. Полиморфные запросы в EF не очень хорошо работают с энергичной загрузкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...