2011-08-18 87 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)上的属性映射有一个很好的解释。 –