나는이 질문에 비슷한 문제에 봉착 :자 NHibernate 2.1.2 던지는 날짜 시간 널 오버 플로우 예외
NHibernate 2.* mapping files: how to define nullable DateTime type (DateTime?)?
NHibernate won't persist DateTime SqlDateTime overflow
내가 NHibernate에 2.1.2 FluentNhibernate 1.0.0.636를 사용하고 있습니다를 . NHibernate 2.x에서는 null 가능 DateTime?
이슈가 수정되어야하고 매핑에 특별한 것을 할 필요가 없습니다. 따라서 모든 내 DateTime 속성은 다음과 같이 간단하게 설정됩니다.
public virtual DateTime? CreatedOn { get; set; }
내 데이터베이스 (SQL2008)에는 모든 DateTime 속성이 null로 설정됩니다.
<property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property>
NHibernate에이 날짜 시간은 포함되지 않습니다 아무것도 잘 작동 : 나는 SQL2008 방언을 사용하는 내 NHibernate에 config 파일 설정을 가지고있다. 참고로, 여기에 내가 받고있어 정확한 오류는 다음과 같습니다
> 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.
내가 SQL 프로파일 러를 실행하면, 내가 NHibernate에이 매우 긴 문장이었다 (실행하려고 마지막 명령을 볼 수 있습니다, 그래서 그것을 잘립니다했습니다) :
exec sp_executesql N'UPDATE Projects SET Job = @p0, CreatedOn = @p1, .. WHERE (Where Clause), @p0=219221, @p1=NULL
이 명령문을 쿼리로 실행하면 SQL은 문제가 없어도 전혀 불평하지 않습니다.
무슨 일 이니?
DateTime? dateTime이 null 일 수 있기 때문에 작동합니다. 날짜 - 시간이 nullable (DateTime 만)이 아닌 경우 1/1/0001 인 min-value로 인스턴스화됩니다. –