2011-08-18 83 views
1

在我的MySql數據庫中,我有一個字段,它是一個時間戳。 MySQL正在插入行的創建時間,並更新行更新的時間。用Fluent Nhibernate插入時忽略字段

如何告訴NHibernate插入和更新時不要在該字段中插入任​​何內容。我仍然希望能夠閱讀該財產。

以我目前的映射:

Map(x => x.CreateDate).Column("CreateDate"); 

NHibernate的嘗試插入0001-01-01 00:00:00,因爲該領域是不可爲空(它不應該是可爲空)

我使用Fluent Nhibernate。

回答

2

我相信你應該能夠添加ReadOnly()獲得這種效果。

Map(x => x.CreateDate).Column("CreateDate").ReadOnly(); 
1

我想你應該指定一個屬性是由數據庫生成:

Map(x => x.CreateDate).Column("CreateDate").Generated.Always(); 
+1

這並不妨礙您能夠在該列上執行更新,我認爲這是在這種情況下所期望的。 – ddc0660

+0

@ ddc0660你是對的,如果需要的話,可以通過NHibernate更新該列。生成是有用的,如果你想強制NHibernate選擇插入的值返回到應用程序。也許這兩個都應該在這裏使用。 順便說一下,關於[Ayende博客](http://ayende.com/blog/3936/nhibernate-mapping-property)上的屬性映射有一個很好的解釋。 –