1

間違って書いたコードが機能することに戸惑っています...

        Map( x => x.StartTime )
            .Access.Property()
            .CustomType( "time" )
            .Generated.Never()
            .Column( "StartTime" )
            .Default( "(CONVERT([time],getdate(),(0)))" )
            .Nullable()
            .Not.LazyLoad();

何らかの理由で問題なく動作しますが、 CustomType の代わりに CustomSqlType を記述して変更するつもりであることに気付いたとき、動作を停止しました...また、 CustomType( "time" ) の行を削除すると、動作も停止します。それを機能させる唯一の方法は、上記のようにすることですが、その理由がわかりません:(

編集: SQL 側では私の列は「時間」型であり、.NET 側ではプロパティは DateTime 型であることに言及するのを忘れていましたか? (null 可能)。

4

1 に答える 1

1

NHibernate は ITypes を使用して、プロパティの型を列の値にマーシャリングします。NHibernate.Type.TimeTypeたとえば、 「time」という名前の など、使用する組み込み型がいくつかあります。

于 2012-10-05T14:39:55.503 に答える