这是我正在尝试做的事情:
IEnumerable<OfficeView> allOffices = GetAllOffices(); //this method also uses some linq query
foreach (var office in allOffices)
{
officeSales.Add(
new Tuple<int, decimal>(office.Id, GetSaleAmount(office.Id, someParams)));
}
public decimal GetAgentSaleAmount(int officeRef, someTypes someParams)
{
var q = ObjectQuery.Where
(i => i.officeId == officeRef && i.someOtherStuff == someParams)
.ToList();
return q.Sum(i => i.NetPrice);
}
我无法设置MultipleActiveResultSets = true
。相反,正如这里所建议的,我在求和之前尝试.ToList()
做,但得到了同样的错误。(即使我不会得到错误,我认为它会导致繁重的负载来获取所有内容只是为了获得一个字段的总和)
我将非常感谢任何解决此问题的建议!
更新:问题是关于GetAllOffices()
,它返回IEnumerable
(它保持DataReader
开放)。我如下更改了第一行,它起作用了。非常感谢大家:)
IEnumerable<OfficeView> allOffices = GetAllOffices().ToList();