2011-09-12 39 views
3

我已經創建了一個Fluent約定來映射一個特定的屬性,它傳達了一個datetime屬性不會爲空,並且將使數據庫插入今天的日期值,這是它的代碼:NHibernate - 插入時生成防止值的更新

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

插入按預期工作。不期望的是,當我更新記錄並將屬性(「修改」)設置爲今天的日期時,該值不會持久 - 我可以從NH生成的sql語句中看到它不在語句中。我試圖增加無濟於事。

instance.Update(); 

我正確地認爲這應該工作?

回答

4

不,這不需要工作。如果您將某個屬性映射爲生成的屬性,則該屬性僅由數據庫生成,並且不能由應用程序更改。您指定僅在插入時生成,而不是在更新時生成,因爲NH需要在插入後獲取生成的值,並且在更新後不需要。

要設置默認值,我會使用構造函數和麪向對象編程的其他技術。