C# LINQ到SQL-不支持ToDictionary-如何将结果拉入内存?

C# LINQ到SQL-不支持ToDictionary-如何将结果拉入内存?,c#,linq-to-sql,C#,Linq To Sql,当执行这个LINQ to SQL时,我得到了错误 System.NotSupportedException: 查询运算符“ToDictionary”不可用 支持 我需要做的是先把这些行放到内存中,但我不知道怎么做。我试着在不同的地方给托利斯打电话,但没有成功。你试过了吗 var details= from row in databaseTable where row.id equals queryId select new { Dict = row.

当执行这个LINQ to SQL时,我得到了错误

System.NotSupportedException: 查询运算符“ToDictionary”不可用 支持

我需要做的是先把这些行放到内存中,但我不知道怎么做。我试着在不同的地方给托利斯打电话,但没有成功。

你试过了吗

  var details= from row in databaseTable
    where row.id equals queryId
    select new 
     {
       Dict = row.ToDictionary(x => x.Name, x => x.Value),
     };
如果要按值搜索,则将
.ToDictionary(x=>x.name)更改为
by
.ToDictionary(x=>x.value)

希望这有帮助

var fixTotaliserDetails = (from row in databaseTable
    where row.id equals queryId
    select name = x.Name, value = x.Value).ToDictionary(x => x.name);

这会奏效的。不过,我认为您可能过于简化了您的答案,因为在linq to sql中,表中的一项并没有实现
IEnumerable

,请先告诉我。这里的关键是你需要先把数据拉回来,然后把它翻译成字典。它必须作为原始数据从数据库返回,然后进行修改以适应OO透视图。
var fixTotaliserDetails = (from row in databaseTable
                           where row.id == queryId
                           select new 
                           {
                             row.Name,
                             row.Value,
                           })
                          .ToDictionary(x=>x.Name, x=>x.Value);