2011-10-31 67 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

所以非常正确的...我想我已经创造了谓词这么结束了,我没看到简单的解决方案在我面前。谢谢! –