我不拥有SP,但它返回的数据集的列名为:
FileID, SomethingNormal, Foo, Bar, SUM(bleh)
SUM(bleh)
未命名。我使用VS2010中的dbml工具添加存储过程,它将SUM(bleh)
检测为Column1
,并为其提供一个int类型,听起来不错。
然而,当试图运行时,它试图获取IEnumerable
的那一刻,它会因错误而中断:
指定的演员表无效。
未处理的异常:System.InvalidCastException:指定的强制转换是 无效。在System.Data.SqlClient.SqlBuffer.get_Int32()处 System.Data.SqlClient.SqlDataReader.GetInt32(Int32 i)at Read_RejectedRecordsHourlyBySubscriptionResult(ObjectMaterializer
1 ) at System.Data.Linq.SqlClient.ObjectReaderCompiler.ObjectReader
2.MoveNext()
当我尝试迭代或手动获取枚举时,就会发生这种情况。
在开发环境中我做了SUM(bleh) as TotalBleh
(请放心所有这些名字都是假的> _>)而且我对我所做的事情没有任何疑问。
我应该知道什么?谢谢!
编辑:
这似乎是Linq-to-SQL的一个错误。奇怪的是,错误报告说它支持-ONE-匿名列(尽管不多),在这种情况下只有一个。
我会用基本的SqlCommand
和东西来做。对商品来说太多了。