2011-10-31 47 views
1

我試圖將List<string>傳遞給一個方法,該方法將採用它並使用它來創建要在實體框架查詢中使用的包含語句的列表。爲實體框架查詢動態指定「包含」

例如:

List<string> myIncludes = new List<string>(); 
myIncludes.Add("myObject.FirstRelatedObject"); 
myIncludes.Add("myObject.SecondRelatedObject"); 

我想用這個列表來獲得類似於以下,dyamically:

var myQry = objectContext.object.Include(myIncludes[0]).Include(myIncludes[1]); 

我怎麼會去這樣做呢?我正在使用predicateBuilder來生成聲明的「where」部分,但我不認爲它與「Include」部分是一樣的。

回答

5

你可以嘗試這樣的事情(其中謂詞是您PredicateBuilder):

var includes = new List<string>() { "Include1, Include2" }; 

var query = this.Context.Campos; 

foreach(var s in includes) 
    query.Include(s); 

var result = query.Where(predicate.Expand()); 
+0

所以非常正確的...我想我已經創造了謂詞這麼結束了,我沒看到簡單的解決方案在我面前。謝謝! –