下面的代码给出以下错误:
"表达式树可能不包含动态操作"
var x = db.Data.Select(x => new { name = TitleHT[x.TitleId], x.TitleId }).GroupBy(x => x.name);
Run Code Online (Sandbox Code Playgroud)
TitleHT是Dictionary<int, string>我可以查找TitleId的字符串表示.因此,我试图在查询中为此字符串文字指定名称.TitleId的类型是int?不确定这是否重要.
您使用"linq-to-sql"标记了您的问题,因此我假设db是L2S DataContext.在这种情况下,LINQ Provider会尝试将TitleHT [x.TitleId]转换为SQL语句,但无法将其转换为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);
Run Code Online (Sandbox Code Playgroud)