2010-09-14 60 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