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

本文关键字:EF 语句 SQL to 包含 Linq 变量 | 更新日期: 2023-09-27 18:34:13

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中的每个字符串参数?

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

在我的头顶上,我不明白为什么这样的事情不起作用。

var query = db.Forms.Where(m => m.Id == formId);
foreach(string s in includes)
{
    query = query.Include(s);
}
Form form = query.First();

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

var entity = db.Forms;
foreach (string s in includes)
{
    entity.Include(s);
}
Form form = entity.Where(m => m.Id == id).First();