Ich habe eine sehr einfache Tabelle mit einer Datetime-Spalte und ich habe diese Zuordnung in meinem Domänenobjekt.
MeinDatum ist der Name der Datetime-Spalte in der DB.
public virtual int Day { get; set; }
public virtual int Month { get; set; }
public virtual int Year { get; set; }
public virtual int Hour { get; set; }
public virtual int Minutes { get; set; }
public virtual int Seconds { get;set; }
public virtual int WeekNo { get; set; }
Map(x => x.Day).Formula("DATEPART(day, Datetime)");
Map(x => x.Month).Formula("DATEPART(month, Datetime)");
Map(x => x.Year).Formula("DATEPART(year, Datetime)");
Map(x => x.Hour).Formula("DATEPART(hour, Datetime)");
Map(x => x.Minutes).Formula("DATEPART(minute, Datetime)");
Map(x => x.Seconds).Formula("DATEPART(second, Datetime)");
Map(x => x.WeekNo).Formula("DATEPART(week, Datetime)");
Das funktioniert alles super .... aber Week Datepart.
Ich sah mit NHProf die Sql-Generierung für einen Select und hier ist das Problem Die gesamte Sql wird korrekt generiert, aber für den Datumsbereich der Woche. Dies ist ein Teil des generierten SQL:
....Datepart(day, MyDate) ... ....Datumteil(Monat, MeinDatum) ... ....Datumteil(Jahr, MeinDatum) ... ....Datumteil(Stunde, MeinDatum) ... ....Datenteil(Minute, MeinDatum) ... ....Datumsteil(Sekunde, MeinDatum) ... ....Datepart( diese_.Woche , MeinDatum) ...
wobei this_ der Alias für die Tabelle ist, die nhibernate verwendet.
also behandelt es das Schlüsselwort week für den Datenteil als Spalte oder so ähnlich. Um zu klären, gibt es keine Spalte oder Eigenschaften, die Woche genannt wird.
etwas Hilfe?
Prost
Alessandro