Исключение преобразования Linq-to-SQL с хранимой процедурой, которая возвращает безымянный столбец - PullRequest
2 голосов
/ 28 июля 2011

У меня нет SP, но он возвращает набор данных со столбцами с такими именами, как:

FileID, SomethingNormal, Foo, Bar, SUM(bleh)

SUM(bleh) без имени.Я добавляю сохраненный процесс с помощью инструмента dbml в VS2010, и он обнаруживает SUM(bleh) как Column1 и присваивает ему тип int, который звучит нормально.

Однако при попытке запустить момент, когда он пытаетсяполучить IEnumerable, он ломается, выдавая ошибку:

Указанное приведение недействительно.

Необработанное исключение: System.InvalidCastException: Указанное приведение недействительно.в System.Data.SqlClient.SqlBuffer.get_Int32 () в System.Data.SqlClient.SqlDataReader.GetInt32 (Int32 i) в Read_RejectedRecordsHourlyBySubscriptionResult (ObjectMaterializer 1 ) at System.Data.Linq.SqlClient.ObjectReaderCompiler.ObjectReader 2.MoveNext)В тот момент, когда я пытаюсь выполнить итерацию, или если я получаю перечисление вручную.

В среде разработчика я сделал SUM(bleh) as TotalBleh (будьте уверены, все эти имена фальшивые> _>), и у меня не было проблем с тем, что яготово.

Что-нибудь, что я должен знать? Спасибо!

РЕДАКТИРОВАТЬ:

Это похоже на ошибку в Linq-to-SQL. Как ни странно, в отчете об ошибках говорится, что он поддерживает-ONE- анонимный столбец (хотя и не более), и в этом случае есть только один.

Я сделаю это с базовыми SqlCommand и прочим. Так много для товара.

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