Mit. NET und NHibernate, zeichne ich Daten aus einer MySql-Datenbank Tabelle. Dies enthält eine Spalte vom Datentyp MySQL-Timestamp mit dem Standard-Nullwert (0000-00-00 00:00:00).Wie bekomme ich Null MySQL-Timestamp-Werte
Ich ordnet die Spalte einem DateTime-Member meiner Klasse zu. Beim Erstellen eines Kriteriums klagt NHibernate über falsches Format. Ich möchte die Nullwerte in gültige Werte umwandeln. Ist das möglich?
Update: Ich habe versucht, die IUserType-Schnittstelle in der Klasse zu implementieren, die ich zuordnen möchte. Dies scheint jedoch noch nicht viel zu helfen. Es sieht so aus:
public virtual object NullSafeGet(System.Data.IDataReader rs, string[] names, object owner)
{
if (rs.IsDBNull(rs.GetOrdinal(names[6])) || rs.GetDateTime(6) < DateTime.MinValue) return DateTime.MinValue;
else
return rs.GetDateTime(6);
}
Ich habe keine Ahnung, ob das richtig ist. (Der Wert Datetime, die Probleme verursacht, ist die 6. Eigenschaft der Klasse.)
Mein Programm an diesem Code bricht:
ISession session = GetCurrentSession();
return session.CreateCriteria<ClassToMap>().List<ClassToMap>();
Nein, ich benutze NHibernate, die SQL für mich tut. – AGuyCalledGerald