【发布时间】:2013-12-19 03:44:47
【问题描述】:
我有以下代码来返回在确定的日期内合同到期的所有记录:
return pSource
.Where(q =>
q.StaffContracts.OrderByDescending(p => p.SignedDate).FirstOrDefault().Timespan.HasValue &&
q.StaffContracts.OrderByDescending(p => p.SignedDate).FirstOrDefault().SignedDate.HasValue &&
(q.StaffContracts.OrderByDescending(p => p.SignedDate).FirstOrDefault().SignedDate.Value.AddMonths( q.StaffContracts.OrderByDescending(p => p.SignedDate).FirstOrDefault().Timespan.Value)
- now).TotalDays <= value);
如您所见,q.StaffContracts.OrderByDescending(p => p.SignedDate).FirstOrDefault() 重复了很多次。有没有办法缩短这个声明?而它的等价SQL语句又是什么?
【问题讨论】: