调用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 WidnowWatch窗口中执行同一行时,我得到了预期的结果,没有任何错误。

我试图加载.NET的调试符号,但在这种情况下,似乎没有可用的源代码,所以我无法像那样调试它。

你知道我还能做些什么来找到这个bug吗?

编辑:我刚刚在这个代码块周围添加了一个try/catch,它为Flower表中的每一列抛出了exeption。

调用SqlQuery.ExecuteAsCollection<;时发生IndexOutOfRangeExceptio

我找到了一个解决方法。。。

我最初的SqlQuery是用一个限制结果中列的参数构造的:

SqlQuery sqlQuery = new Select(new String[] { Flower.Columns.Name }).From(Tables.Flower)

在我从Select构造函数中删除参数后,它运行时没有抛出任何异常:

SqlQuery sqlQuery = new Select().From(Tables.Flower)

为什么它在CCD_ 10&尽管如此,Watch仍然是一个谜。。。