これが私がやろうとしていることです:
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()
で提案されているように、合計を行う前に実行しようとしましたが、同じエラーが発生しました。(そして、エラーが発生しなくても、1つのフィールドの合計を取得するためだけにすべてを取得すると、負荷が高くなると思います)
この問題を解決するための提案に非常に感謝します!
更新:問題はすべてGetAllOffices()
、返されたIEnumerable
(未解決のDataReader
まま) に関するものでした。最初の行を以下のように変更したところ、うまくいきました。どうもありがとう:)
IEnumerable<OfficeView> allOffices = GetAllOffices().ToList();