NHibernate - 生成插入,防止更新值

时间:2011-09-12 09:50:03

标签: nhibernate nhibernate-mapping

我创建了一个Fluent约定来映射一个特定的属性,该特性传达了datetime属性不为null并且数据库会在今天插入其值的日期,这是它的代码:

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

插入按预期工作。不期望的是,当我更新记录并将属性(“Modified”)设置为今天的日期时,该值不会持久化 - 我可以从NH生成的sql语句中看到它不在语句中。我试着添加无济于事。

instance.Update();

我认为这应该有用吗?

1 个答案:

答案 0 :(得分:4)

不,这不需要工作。如果将属性映射为生成的属性,则它仅由数据库生成,并且不能由应用程序更改。您指定它仅在插入时生成,而不是在更新时生成,因为NH需要在插入后获取生成的值,并且在更新后不需要。

要设置默认值,我会使用构造函数和面向对象编程的其他技术。