2009-11-12 52 views
6

我試圖比較NHibernate的LINQ兩個日期(日期時間):在NHibernate中的LINQ在DateTime值比較只有日期

query = query.Where(l => (l.datCriacao.Date == dtLote.Date) 

但我得到的錯誤:

NHibernate.QueryException: could not resolve property: datCriacao.Date of: SAGP.Entities.Lote 

任何人知道如何我能解決這個問題嗎?由於

回答

13

我解決了兩個日期之間做一個問題:

DateTime initialDate, finalDate; 
initialDate= DateEntity.Date; 
finalDate= new DateTime(DateEntity.Year, DateEntity.Month, DateEntity.Day, 23, 59, 59); 
query = query.Where(l => (((l.dateEntity>= initialDate) && (l.dateEntity<= finalDate)) 
+0

我知道這是舊的,但,這是不好的例子,因爲dateEntity可2 3:59:59.200,並且將離開任何範圍。 Chris M給出了更好的答案。 – dariol 2016-06-26 20:50:41

1

您可以檢查車況這樣

VAR nextDay = DateTime.Today.AddDays(1);

查詢= query.Where(L =>(l.datCriacao> = dtLote & & l.datCriacao < nextDay);

在這裏你會得到dtLote日的記錄,因爲我們dtLote和dtLote之間檢查1天(00:00:00)我們會得到今天的日期只記錄什麼都可能是時間......

4

這是超級老了,但我要補充到jaspion的例子如:

query = query.Where(l => (l.datCriacao >= dtLote.Date && l.datCriacao < dtLote.Date.AddDays(1))