我最近升级到 devart 7.5 并且一些功能无法正常工作。具体来说,我有一个返回 IEnumerable 的函数:
protected IEnumerable<BudgetTotals> getTotals(decimal groupId, decimal budgetId)
{
using (SsinpatDataContext dc = new SsinpatDataContext())
{
object[] ids = new object[2] { groupId, budgetId };
string sqlStr = "..."
var query = dc.ExecuteQuery<BudgetTotals>(sqlStr, ids);
return query;
}
}
至此,一切正常,返回变量 " query
" 保存正确的值。
问题是调用getTotals
对象时没有设置:
...
var query = getTotals(grpId,bdgId);
foreach(BudgetTotals bt in query)
{
...
}
现在,当控制在 foreach 指令中到达“in”时,会抛出异常消息"Object not set to an instance of an object"
,这让我感到困惑,因为
a)它工作正常,并且
b) 对象被设置在函数内getTotals
。
我可以通过将返回值从IEnumerable
to更改BudgetTotals[]
并返回来解决问题query.ToArray
。我试过了,它有效。这里的主要问题是所有其他返回 IEnumerable 的函数。
在彻底检查应用程序之前,我想了解导致从 devart 6.3 到 7.5 的行为差异的原因或原因。
提前致谢