У меня нет 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
и прочим. Так много для товара.