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