我对我写错误的一些代码感到困惑......
Map( x => x.StartTime )
.Access.Property()
.CustomType( "time" )
.Generated.Never()
.Column( "StartTime" )
.Default( "(CONVERT([time],getdate(),(0)))" )
.Nullable()
.Not.LazyLoad();
由于某种原因,它工作正常,但当我意识到我打算编写CustomSqlType而不是CustomType并更改它时,它停止工作...另外,如果我只删除行CustomType(“time”)它也会停止工作。让它工作的唯一方法就是按照它的方式使用它,我不明白为什么:(
编辑:忘了提到在SQL端我的列是“time”类型,而在.NET端,属性是DateTime类型? (可为空的)。
答案 0 :(得分:1)
NHibernate使用ITypes来回调整属性类型到列值。有几种内置类型可供使用,例如NHibernate.Type.TimeType
,其名称为“time”。