5
这里的问题拉姆达妥善处理可能System.NullReferenceException表达式
return _projectDetail.ExpenditureDetails
.Where(detail => detail.ProgramFund == _programFund
&& detail.Expenditure.User == _creditCardHolder)
.Sum(detail => detail.ExpenditureAmounts.FirstOrDefault(
amount => amount.isCurrent && !amount.requiresAudit)
.CommittedMonthlyRecord.ProjectedEac);
表结构
ProjectDetails(1对多)ExpenditureDetails
ExpenditureDetails(1对多)ExpenditureAmounts
ExpenditureAmounts查询( 1到1)CommittedMonthlyRecords
ProjectedEac是CommittedMonthlyRecords上的一个十进制字段。
我在单元测试中发现的问题(虽然是不太可能发生),如下行可能为空:
detail.ExpenditureAmounts.FirstOrDefault(
amount => amount.isCurrent && !amount.requiresAudit)
我原来的查询是一个嵌套的循环,在那里我将作出多次往返到数据库,我不想重复。我查看了这里的一些类似问题,但是the solution didn't seem to fit。
任何想法?
作品像一个冠军,非常感谢 – taco 2010-05-05 18:27:31