0

我的方法有一个非常严重的问题,SqlQuery.ExecuteAsCollection<T>()我不确定这是否与 SubSonic、我的数据库或 .NET 有关。

当以下行被执行时:

FlowerCollection myCollection = sqlQuery.ExecuteAsCollection<FlowerCollection>();

我的应用程序崩溃,IndexOutOfRangeException其中System.Data.dll包含表Additional Information中列的名称Flower(在数据库本身和生成的 SubSonic 类中都存在)。Command Widnow但是,当我在窗口或窗口中执行同一行时,Watch我得到了我期望的结果,没有任何错误。

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

你有什么想法我可以尝试找到错误吗?

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

4

1 回答 1

0

我找到了解决方法...

我的原件SqlQuery是用一个限制结果列的参数构造的:

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

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

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

为什么它在Command&Watch尽管这仍然是一个谜......

于 2014-11-10T11:14:22.317 回答