聲明我有下面的代碼返回已在確定的天合同到期的所有記錄:瑞風可枚舉LINQ WHERE反覆參數
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語句是什麼?
謝謝,我在lambda操作中收到語法錯誤:'帶有語句正文的lambda表達式不能轉換爲表達式樹。我該如何解決這個問題?對不起,我是LINQ的新手。 –
啊。這是一個問題。 LINQ不是直接的SQL技術,它被ORM使用,例如LINQ-to-SQL,Entity Framework,NHibernate等來創建SQL。它通過訪問lambda表達式中的每個節點來生成SQL。我給你的是LINQ ..但它不是一個lambda表達式..它是一個完整的方法體。不幸的是,這將無法轉換爲SQL。 –