具有返回未命名列的存储过程的Linq到SQL强制转换异常

具有返回未命名列的存储过程的Linq到SQL强制转换异常,sql,sql-server,linq-to-sql,stored-procedures,Sql,Sql Server,Linq To Sql,Stored Procedures,我不拥有SP,但它返回一个数据集,其中列的名称如下: FileID, SomethingNormal, Foo, Bar, SUM(bleh) SUM(bleh)未命名。我在VS2010中使用dbml工具添加了存储的进程,它将SUM(bleh)检测为Column1,并给它一个int类型,听起来不错 但是,当尝试运行时,当它试图获取IEnumerable时,它会给出一个错误: 指定的强制转换无效 未处理的异常:System.InvalidCastException:指定的强制转换为 无效。在Sy

我不拥有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)位于 Read_RejectedRecordsHourlyBySubscriptionResult(ObjectMaterialer
1)
在
System.Data.Linq.SqlClient.ObjectReaderCompiler.ObjectReader
2.MoveNext()

当我尝试迭代或手动获取枚举时,就会发生这种情况

在一个开发环境中,我使用TotalBleh做了
SUM(bleh)
(请放心,所有这些名称都是假的>),我所做的一切都没有问题

有什么我应该知道的吗?谢谢

编辑:

这似乎是LINQtoSQL的一个bug。奇怪的是,bug报告说它支持一个匿名列(虽然不再支持),而在本例中只有一个


我将用basic
SqlCommand
和其他东西来完成它。商品就到此为止。

谷歌搜索一下,然后找到。只需使用列索引:1,2,3…请提供您的LINQ查询。这是一个2.5年的问题。我甚至无法再访问这些代码了。只需在谷歌上搜索一下就可以了。只需使用列索引:1,2,3…请提供您的LINQ查询。这是一个2.5年的问题。我甚至连那个密码都没有了。