需要帮助试图EagerLoad EntityFramework中的一些数据
问题描述:
我想在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")
,?
答
我不这么认为。由于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);
}
呀 - 这是我做了几个小时前..八九不离十。我没有打扰扩展方法,但继续前进,并添加了另一个字符串[] includeAssociations参数到我的查找(..)方法。 – 2010-09-14 05:59:25