chu*_*nce 5 nhibernate fluent-nhibernate
我对这些问题有类似的问题:
NHibernate 2.*映射文件:如何定义可空的DateTime类型(DateTime?)?
NHibernate不会持久化DateTime SqlDateTime溢出
我正在使用NHibernate 2.1.2和FluentNhibernate 1.0.0.636.使用NHibernate 2.x DateTime?可以修复可以为空的问题,我不应该对我的映射做任何特别的事情.因此,我的所有DateTime属性都设置如下:
public virtual DateTime? CreatedOn { get; set; }
Run Code Online (Sandbox Code Playgroud)
在我的数据库(SQL2008)中,所有DateTime属性都设置为允许null.我有我的NHibernate配置文件设置使用SQL2008方言:
<property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property>
Run Code Online (Sandbox Code Playgroud)
NHibernate适用于任何不包含DateTime的东西.作为参考,这是我收到的确切错误:
> 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.
Run Code Online (Sandbox Code Playgroud)
如果我运行SQL事件探查器,我可以看到NHibernate尝试执行的最后一个命令(这是一个非常长的语句,所以我截断了它):
exec sp_executesql N'UPDATE Projects SET Job = @p0, CreatedOn = @p1, .. WHERE (Where Clause), @p0=219221, @p1=NULL
Run Code Online (Sandbox Code Playgroud)
如果我将此语句作为查询执行,SQL会保持正常,不会抱怨!
这是怎么回事?
| 归档时间: |
|
| 查看次数: |
1471 次 |
| 最近记录: |