Ошибка Linq - «NotSupportedException: неподдерживаемая перегрузка, используемая для оператора запроса« Выбрать »» - PullRequest
8 голосов
/ 07 июля 2010

У меня следующий запрос Linq:

var tmp = 
    from container in Container
    join containerType in ContainerType on container.ContainerType equals containerType
    where containerType.ContainerTypeID == 2
    select new { ContainerID = container.ContainerID, TypeID = container.ContainerTypeID};

var results = tmp.Select((row, index) => new { row.ContainerID, row.TypeID, ContainerIndex = index })

Как это работает нормально.Если я добавлю следующее, чтобы увидеть результаты в LinqPad, я получу ошибку, описанную в заголовке этого сообщения:

results.Dump();

Эта ошибка не является ошибкой LinqPad, она исходит от LinqЯ не понимаю, что это значит.

Спасибо.

1 Ответ

17 голосов
/ 07 июля 2010

Хорошо, я не осознавал, Container - это источник данных LINQ to SQL, с которого можно начать. По сути, он не может преобразовать второй прогноз в SQL.

Итак, вы хотите сделать именно этот бит вместо .NET - вы можете заставить его использовать Enumerable.Select с AsEnumerable:

var results = tmp.AsEnumerable()
                 .Select((row, index) => new { row.ContainerID, row.TypeID,
                                               ContainerIndex = index });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...