2

这是我的查询:

from f in DataAccess.Data.FList
join fA in DataAccess.Data.FAppsList on f.ID equals fA.fID into fApps
from fA in fApps.Where(fA => fA.Year == reportYear).DefaultIfEmpty() 
join fSrc in DataAccess.Data.FSourcesList on new { ID = fA.sourceID, CropYear = reportYear } 
equals new { ID = fSrc.ID, CropYear = fSrc.CropYear }

如果 fA == null,我得到对象引用 null 异常。我正在对 fA 进行左连接,因此它可能为空值或非空值。如何重写这部分查询,以便在 fA 为空时查询不会引发异常。

非常感谢!

4

1 回答 1

1

三元条件运算符 ( ?:)中的常见构造可用于保护null-valued在表达式上调用成员:

foo != null ? foo.bar : anExpressionThatDoesNotUseFoo

在上下文中:

new {
  ID = fA != null ? fA.sourceID : 0, // or as appropriate
  ..
} 
于 2012-12-03T22:12:56.307 回答