2010-09-14 61 views
0

我想在EF实体上做一些急切的加载。需要帮助试图EagerLoad EntityFramework中的一些数据

所以,如果实体被称为Orders ..然后我想我会做以下...

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

但问题是,我有一个像下面...

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

,而不必再添加一个方法参数,它的伟大工程..但我可以利用Expression谓词包括在那里Include("whatever"),?

回答

0

我不这么认为。由于predicral和ObjectQuery.Where Method in genral与通过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); 
} 
+0

呀 - 这是我做了几个小时前..八九不离十。我没有打扰扩展方法,但继续前进,并添加了另一个字符串[] includeAssociations参数到我的查找(..)方法。 – 2010-09-14 05:59:25