我需要檢查兩個日期在Linq查詢中是否相等,日期來自兩個不同的表(不作爲參數)。我已經查看了網絡上的現有解決方案以及SO。有些不適用於我的情況,有些不夠優雅。只是尋找更好的替代解決方案,如果有的話。優雅的解決方案,檢查兩個日期是否相等,在Linq(其中第二個日期不是一個參數)
示例查詢(需要比較僅日期的部分):
var query = from t1 in Table1
join t2 in Table2 on t1.Id equals t2.ForeignKeyId
where t1.Id = someId
&& t1.Date1.Date.Equals(t2.Date2.Date)
這一個失敗並顯示錯誤「‘日期’在LINQ到Entitiies不支持只有初始化器,實體成員和實體導航屬性。支持「
該職位'Date' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported有一個分別比較日,月和年的解決方案。我試圖把它包裝到一個擴展方法中,但似乎Linq不喜歡擴展方法。由於第二個日期不是一個變量,我不能使用鏈接帖子中提到的其他解決方案(因爲某些原因,我不能在Linq內的某個日期調用「AddDays」方法)。看起來Linq中的Date API有很多限制。
比較日,月,年分別按預期工作嗎? – dasblinkenlight 2011-12-28 12:24:57
是的,如果我將它們分開進行比較,它會起作用。 – RKP 2011-12-28 12:43:39