У меня есть запрос Linq следовать, что в веб-приложение, которое превращалось из .NET 1.1 до 3.5:Linq запрос не возвращает IEnumerable
dim objListOfFilteredDataRows = from datarows as datarow in objDataSet.tables(0).rows _
where datarows("SomeColumn") = SomeValue
У меня есть точно такой же запрос в приложении, которое было создано с использованием .NET 3.5, и запрос возвращает IEnumerable. Однако запрос в преобразованном приложении возвращается:
{Name = "WhereEnumerableIterator`1" FullName = "System.Linq.Enumerable+WhereEnumerableIterator`1[[System.Data.DataRow, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"}
** Edit: Когда я выделите выражение, то IntelliSense говорит, что он не знает тип objListOfFilteredDataRows и предполагает его тип «Объект» ,
Почему тип не infered в преобразованном 1.1 приложения, но infered в «родной» 3,5? **
Что я здесь отсутствует? Как я конвертировать «WhereEnumeratorIterator`1 к IEnumerable? Спасибо!
Вы получаете фактическую ошибку где-то из-за этого или просто путаетесь с отладчиком? Похоже, что все в порядке (поскольку, как было сказано ниже, 'WhereEnumerableIterator' реализует 'IEnumerable '). Если вы получаете проблему преобразования типов, давайте посмотрим код, в котором происходит эта проблема. –
bdukes
Я нашел решение!Опция Infer в разделе «Компиляция» параметров проекта была отключена. Это связано с тем, что проект был преобразован из более ранней версии в версию 3.5 .NET. – Achilles
Вы должны добавить это как ответ и принять свой ответ в качестве решения. –