Ben bu sorulara benzer bir sorun yaşıyorum:NHibernate 2.1.2 atma DateTime boş taşma istisna
NHibernate 2.* mapping files: how to define nullable DateTime type (DateTime?)?
NHibernate won't persist DateTime SqlDateTime overflow
Ben NHibernate 2.1.2 ve FluentNhibernate 1.0.0.636 kullanıyorum . NHibernate 2.x ile null olan DateTime?
sorunu düzeltilmeli ve eşleştirmemle özel bir şey yapmamalıyım. Buna göre, tüm DateTime özellikleri basitçe şöyle ayarlanır: veritabanıma (SQL2008) olarak
public virtual DateTime? CreatedOn { get; set; }
, tüm DateTime özellikleri boş izin verilecek şekilde ayarlanır.
<property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property>
NHibernate bir DateTime içermez şey için çalışıyor: Ben SQL2008 lehçesini kullanmak benim NHibernate yapılandırma dosyası kurulum var. Referans olması açısından, ben alıyorum tam hata var:
> at
> NHibernate.AdoNet.SqlClientSqlCommandSet.ExecuteNonQuery()</StackTrace><ExceptionString>System.Data.SqlTypes.SqlTypeException:
> SqlDateTime overflow. Must be between
> 1/1/1753 12:00:00 AM and 12/31/9999
> 11:59:59 PM.
ben SQL Profiler çalıştırırsanız, NHibernate, bu çok uzun bir beyanı oldu (çalıştırmayı dener son komutu görebilirsiniz, bu yüzden kesildi ettik): bir sorgu olarak bu deyimi yürütme
exec sp_executesql N'UPDATE Projects SET Job = @p0, CreatedOn = @p1, .. WHERE (Where Clause), @p0=219221, @p1=NULL
SQL ince, hiç şikayet etmiyor devam!
Neler oluyor?
Bir DateTime? DateTime'ın boş olmasına izin verdiği için çalışır. Bir tarih-zamanı null (null DateTime) değilse, 1/1/0001 olan min-değerine eşlenir. –