Ich speichere sowohl das Datum und die Zeit als DateTime
in meiner SQL Server-Datenbank, und ich habe eine DateTime
-Eigenschaft in meinen Zuordnungen. In meiner Abfrage muss ich auf das Datum einzeln und die Zeit auch zugreifen. Mit Datum habe ich kein Problem, aber wenn die Zeit von Datetime zu erhalten versuchen, erhalte ich Fehler folgende:NHibernate QueryOver Zeit von Datum/Uhrzeit-Eigenschaft
Additional information: could not resolve property: TimeOfDay of: IWS.DataContracts.ServicesPlanning
die Zeit in einer anderen Eigenschaft sparen ist nicht, was ich will, obwohl ich es versuchte, und kann es nicht bekommen arbeite entweder.
Abfrage mit QueryOver
:
Session.QueryOver<ServicesPlanning>()
.JoinAlias(x => x.TeamMember,() => stm)
.Where(() => stm.Id == _memberId)
.Where(x => (x.AllDay && (x.StartDate == _startDate && x.EndDate == _endDate)) ||
(!x.AllDay && x.StartDate.Date == _startDate && x.EndDate.Date == _endDate
&& (x.StartDate.TimeOfDay > _endTime.Value || x.EndDate.TimeOfDay < _startTime.Value)))
.RowCount() > 0;
Abfrage mit LINQ:
return Session
.Query<ServicesPlanning>()
.Where(x => x.TeamMember.Id == _memberId)
.Any(x => (x.AllDay && (x.StartDate.Date == _startDate && x.EndDate.Date == _endDate)) ||
(!x.AllDay && x.StartDate.Date == _startDate && x.EndDate.Date == _endDate && (x.StartDate.TimeOfDay > _endTime.Value || x.EndDate.TimeOfDay < _startTime.Value)));
Zweck der Abfrage: überprüfen, ob es bereits eine Planung mit diesem Datum oder Zeit ist, damit wir nicht Überschneidungen haben.
Jede Hilfe wird sehr geschätzt!
Have Sie haben LINQ anstelle von QueryOver versucht? –
@PhilDegenhardt Ja, aber ich scheine den gleichen Fehler zu bekommen. Ich werde meine LINQ-Abfrage auch oben veröffentlichen. –