变量包含在Linq to Sql EF语句中

时间:2014-12-12 21:32:03

标签: c# linq entity-framework asp.net-mvc-4

是否可以在EF Linq查询中包含可变数量的包含?

目前我有类似的东西:

Form form = db.Forms.Where(m => m.Id == formId).Include("Child").First();

但是可以将它包装成:

GetFormWithIncludes(int formId, string[] includes)
{
    Form form = db.Forms.Where(m => m.Id == formId).Include("Each").Include("String").Include("In").Include("includes").First();
}

那么includes中的每个字符串参数都包含在内吗?

2 个答案:

答案 0 :(得分:2)

我不知道为什么这样的东西不起作用。

var query = db.Forms.Where(m => m.Id == formId);

foreach(string s in includes)
{
    query = query.Include(s);
}

Form form = query.First();

正常的警告适用。如果包含数组中的字符串不是导航属性,则EF将抛出异常等。

答案 1 :(得分:0)

var entity = db.Forms;

foreach (string s in includes)
{
    entity.Include(s);
}

Form form = entity.Where(m => m.Id == id).First();