Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 变量包含在Linq to Sql EF语句中_C#_Linq_Entity Framework_Asp.net Mvc 4 - Fatal编程技术网

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

C# 变量包含在Linq to Sql EF语句中,c#,linq,entity-framework,asp.net-mvc-4,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").I

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
中的每个字符串参数都被包含了?

我不明白为什么这样的东西不起作用

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

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

Form form = query.First();

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

尝试此操作时会发生什么?嘿,谢谢你的想法!include函数来自DbQuery对象,而不是IQueryable,因此我不得不对其进行一些修改。为什么不给出可接受的答案呢?
var entity = db.Forms;

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

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