2011-09-12 12 views
3

私は、datetimeプロパティがnullではなく、今日の日付をその値に挿入することを伝える特定の属性をマッピングするためのFluent規則を作成しました。コード:NHibernate - 挿入時に値を更新できないようにする

instance.Not.Nullable(); 
instance.Default("getdate()"); 
instance.Generated.Insert(); 

期待どおりに挿入されます。予期しないことは、レコードを更新して今日の日付にプロパティ( "Modified")を設定すると値が保持されないということです.NHによって生成されたSQLステートメントからステートメント内にないことがわかります。私は無駄に追加しようとしました。

instance.Update(); 

これはうまくいくはずですか?

答えて

4

いいえ、これは動作する必要はありません。生成されたプロパティをマップすると、そのプロパティはデータベースによってのみ生成され、アプリケーションによって変更することはできません。 NHは挿入後に生成された値をフェッチする必要があり、更新後には必要ないため、更新時ではなく挿入時にのみ生成されるように指定します。

デフォルト値を設定するには、コンストラクタやオブジェクト指向プログラミングの他の手法を使用します。

関連する問題