调用SqlQuery.ExecuteAsCollection<;时发生IndexOutOfRangeExceptio
本文关键字:IndexOutOfRangeExceptio lt SqlQuery ExecuteAsCollection 调用 | 更新日期: 2023-09-27 18:30:00
我对SqlQuery.ExecuteAsCollection<T>()
方法有一个非常严重的问题,我不确定这是否与SubSonic、我的数据库或.NET.有关
当执行以下行时:
FlowerCollection myCollection = sqlQuery.ExecuteAsCollection<FlowerCollection>();
我的应用程序与发生在System.Data.dll
中的IndexOutOfRangeException
和包含Flower
表中列名称的Additional Information
(它确实存在于数据库本身和生成的SubSonic类中)一起崩溃。然而,当我在Command Widnow
或Watch
窗口中执行同一行时,我得到了预期的结果,没有任何错误。
我试图加载.NET的调试符号,但在这种情况下,似乎没有可用的源代码,所以我无法像那样调试它。
你知道我还能做些什么来找到这个bug吗?
编辑:我刚刚在这个代码块周围添加了一个try/catch,它为Flower表中的每一列抛出了exeption。
我找到了一个解决方法。。。
我最初的SqlQuery
是用一个限制结果中列的参数构造的:
SqlQuery sqlQuery = new Select(new String[] { Flower.Columns.Name }).From(Tables.Flower)
在我从Select
构造函数中删除参数后,它运行时没有抛出任何异常:
SqlQuery sqlQuery = new Select().From(Tables.Flower)
为什么它在CCD_ 10&尽管如此,Watch
仍然是一个谜。。。