2017-07-07 104 views
0

我真的遇到了下面的LINQ查詢問題。我對這個錯誤做了大量的研究,幾乎所有我發現的參考文獻都使用了DbFunctions.TruncateTime(),但是這對我仍然不起作用。我希望有人可以看看這個,讓我知道我哪裏出錯了。我所要做的只是比較日期時間的日期部分,但我仍然得到異常:LINQ to Entities不支持指定的類型成員'Date'。僅支持初始化程序,實體成員和實體導航屬性。DbFunctions.TruncateTime()仍然生成「類型成員'日期'不支持」錯誤

if (!db.MaintenanceWindows.Any(x => x.Id == Id & 
DbFunctions.TruncateTime(x.BlockedDay) == DateTime.UtcNow.Date & 
x.IsDeleted.Value == false)) 
{ 
... 
} 

TIA

+2

'Date'屬性如何'DateTime.UtcNow.Date' –

+0

是的,它呢?它在那裏不行嗎? – Nugs

+2

我的意思是,它使用'Date'屬性 - 正是什麼異常信息告訴你:)爲什麼你不把它放到查詢之外的變量中。 –

回答

0

這不是抱怨DbFunctions.TruncateTime。它抱怨DateTime.UtcNow.Date

建議答:

if (!db.MaintenanceWindows.Any(x => x.Id == Id && 
    DbFunctions.TruncateTime(x.BlockedDay) == DbFunctions.TruncateTime(DateTime.UtcNow) && 
    x.IsDeleted.Value == false)) 

建議B:

var utcNow = DateTime.UtcNow.Date; 
if (!db.MaintenanceWindows.Any(x => x.Id == Id && 
    DbFunctions.TruncateTime(x.BlockedDay) == utcNow && 
    x.IsDeleted.Value == false)) 

而且,你在表達會希望 「邏輯與」(&&)。

相關問題