Нужна помощь, чтобы попытаться загрузить некоторые данные в EntityFramework - PullRequest
0 голосов
/ 14 сентября 2010

Я пытаюсь сделать какую-то энергичную загрузку в EF Entity.

итак, если сущность называется Orders .. тогда, я думаю, я бы сделал следующее ...

_someContext.Orders.Include("Whatever") ....

Но проблема в том, что у меня есть метод, подобный следующему ...

public IQueryable<Order> Find(Expression<Func<Order, bool>> predicate)
{
    return CurrentContext.Orders.Where(predicate);
}

, который прекрасно работает ... но могу ли я использовать предикат Expression, чтобы включить туда Include("whatever") вместо необходимости добавлять другой параметр метода?

1 Ответ

0 голосов
/ 14 сентября 2010

Я так не думаю.Поскольку предикат и ObjectQuery.Where метод в общем не имеют ничего общего с энергичной загрузкой с помощью Include.Вы можете создать метод расширения, но это не избавит вас от наличия еще одного параметра для указания include:

public IQueryable<Order> Find(Expression<Func> predicate, string include) {
    return CurrentContext.Orders.Where(predicate, include);
}

public static ObjectQuery<T> Where<T>(this ObjectQuery<T> entity, Expression<Func<T, bool>> predicate, string include) {
    return (ObjectQuery<T>)entity.Include(include).Where<T>(predicate);
}
...