LINQ to SQL - ToDictionary не поддерживается - Как вывести результаты в память? - PullRequest
4 голосов
/ 24 мая 2010
  var details= from row in databaseTable
    where row.id equals queryId
    select new 
     {
       Dict = row.ToDictionary(x => x.Name, x => x.Value),
     };

При выполнении этого LINQ to SQL я получаю ошибку;

System.NotSupportedException: оператор запроса 'ToDictionary' не поддерживается.

ЧтоМне нужно сначала вставить строки в память, но я не уверен, как это сделать.Я пытался вызвать ToList в разных местах, но безуспешно.

Ответы [ 2 ]

5 голосов
/ 24 мая 2010
var fixTotaliserDetails = (from row in databaseTable
                           where row.id == queryId
                           select new 
                           {
                             row.Name,
                             row.Value,
                           })
                          .ToDictionary(x=>x.Name, x=>x.Value);

Это будет работать. Я думаю, что вы, возможно, слишком упростили свой ответ, поскольку в linq-to-sql элемент таблицы не реализует IEnumerable<T>

2 голосов
/ 24 мая 2010

Вы пробовали?

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

, и если вы хотите искать по значению, то измените .ToDictionary(x => x.name); на .ToDictionary(x => x.value);.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...