在NHibernate中为一个属性执行自定义sql

时间:2009-03-17 11:17:19

标签: nhibernate nhibernate-mapping

据我所知,NHibernate有一个支持时间戳的内置版本。但是,看起来您只能指示NHibernate永远不会更新属性或始终更新它。

在我目前正在进行的项目中,有几个表同时具有“created_time”和“updated_time”,两者都由数据库生成。

我无法弄清楚如何指示NHibernate对两个属性使用“getdate()”仅在“created_time”的插入和“updated_time”的插入和更新上使用。

这可能吗?

PS:我正在使用遗留数据库,我不允许更改它,因此触发器等不是可能的解决方案。

2 个答案:

答案 0 :(得分:1)

你可以通过创建一个设置这些值的拦截器来解决这个问题,但是当然,这些值不是由DBMS的场景产生的......

这可能是一种解决方法,因为我也不知道如何确保数据库填充这些值,但我也对此问题的另一个解决方案感兴趣。 :)

答案 1 :(得分:1)

您使用的是哪个版本的NHibernate?

在2.0中,属性上的“generated”标记有三个有效值:

  • 从不(不言自明)
  • insert(仅在插入时检索生成的值)
  • 始终(始终检索生成的值)。