Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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
LINQ/投影-表达式树不能包含动态操作?_Linq_Linq To Sql - Fatal编程技术网

LINQ/投影-表达式树不能包含动态操作?

LINQ/投影-表达式树不能包含动态操作?,linq,linq-to-sql,Linq,Linq To Sql,下面的代码给出了以下错误: “表达式树不能包含动态操作” TitleHT是一个字典,因此我可以查找TitleId的字符串表示形式。因此,我试图在查询中为这个字符串文本分配名称。TitleId是int类型的?不确定这是否重要。您将问题标记为“linq to sql”,因此我假设db是L2S数据上下文。在这种情况下,LINQ提供程序尝试将TitleHT[x.TitleId]转换为SQL语句,但无法执行。像这样的方法应该会奏效: var x = db.Data .Select(x =>

下面的代码给出了以下错误:

“表达式树不能包含动态操作”


TitleHT是一个
字典
,因此我可以查找TitleId的字符串表示形式。因此,我试图在查询中为这个字符串文本分配名称。TitleId是int类型的?不确定这是否重要。

您将问题标记为“linq to sql”,因此我假设db是L2S数据上下文。在这种情况下,LINQ提供程序尝试将TitleHT[x.TitleId]转换为SQL语句,但无法执行。像这样的方法应该会奏效:

var x = db.Data
    .Select(x => x.TitleId)
    .ToList() // Subsequent projection using LINQ-to-Objects
    .Select(x => new { name = TitleHT[x], TitleId = x })
    .GroupBy(x => x.name);

您用“linq to sql”标记了您的问题,因此我假设db是一个L2S数据上下文。在这种情况下,LINQ提供程序尝试将TitleHT[x.TitleId]转换为SQL语句,但无法执行。像这样的方法应该会奏效:

var x = db.Data
    .Select(x => x.TitleId)
    .ToList() // Subsequent projection using LINQ-to-Objects
    .Select(x => new { name = TitleHT[x], TitleId = x })
    .GroupBy(x => x.name);

所以这其中有没有涉及到动力?例如,什么是db.Data?那么。。。这其中有没有涉及到动力?例如,什么是Db.DATA?您可能不应该使用<代码> Telistor()/代码>,但是请考虑使用<代码> ASMeNeReable()/<代码>。这真的取决于你是否想维持延迟执行。@PhilKlein:谢谢你的回复。x、 TitleId没有从第二次选择中得到解决。每个intellisense显示的唯一选项是“HasValue”、“Value”、Equals等。对此表示抱歉。我更新了答案。希望这能起作用。@PhilKlein:Doh,是的,有道理。事实上,我不得不将TitleHT[x]更新为TitleHT[x.Value],并且工作得非常出色。:)Thx菲尔!你可能不应该使用<代码> toSist[()] />代码>但是,请考虑使用<代码> ASMeNeReable()/<代码>。这真的取决于你是否想维持延迟执行。@PhilKlein:谢谢你的回复。x、 TitleId没有从第二次选择中得到解决。每个intellisense显示的唯一选项是“HasValue”、“Value”、Equals等。对此表示抱歉。我更新了答案。希望这能起作用。@PhilKlein:Doh,是的,有道理。事实上,我不得不将TitleHT[x]更新为TitleHT[x.Value],并且工作得非常出色。:)Thx菲尔!