我正在尝试在EF实体上进行一些急切的加载。
所以,如果实体被称为Orders
..那么我想我会做以下......
_someContext.Orders.Include("Whatever") ....
但问题是,我有一个类似以下的方法......
public IQueryable<Order> Find(Expression<Func<Order, bool>> predicate)
{
return CurrentContext.Orders.Where(predicate);
}
效果很好..但是我可以利用Expression
谓词在其中包含Include("whatever")
,而不必添加其他方法参数吗?
答案 0 :(得分:0)
我不这么认为。由于genlude中的谓词和ObjectQuery.Where Method与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);
}