2009-11-12 5 views
6

ho cercando di confrontare due date (DateTime) in NHibernate LINQ:Confronta unica data in NHibernate Linq su un valore DateTime

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

ma sto ottenendo l'errore:

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

qualcuno sa come Posso risolvere questo? Grazie

risposta

13

ho risolto il problema facendo un mezzo con le date:

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

So che è vecchio ma questo è un cattivo esempio perché dateEntity può essere 2 3: 59: 59.200 e sarà fuori da qualsiasi raggio. Chris M ha dato una risposta migliore. – dariol

1

È possibile controllare lo stato come questo

var = Nextday DateTime.Today.AddDays (1);

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

qui otterrai i risultati sulla data dtLote come abbiamo il controllo tra il dtLote e dtLote 1 giorno (00:00:00) ci arriveremo di oggi record di data solo che cosa mai potrebbe essere il momento ...

4

Questo è super vecchio, ma mi piacerebbe aggiungere l'esempio di come Jaspion:

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