2012-11-23 105 views
1

我正在使用具有按视图计算的属性的实体。在我的示例场景:更新后强制实体刷新

  1. 我越来越从数据库&我改变了这个实体
  2. 我保留这个实体了Session.update(实体)
  3. 我的一些属性的实体m调用session.Refresh(实体),因为视图计算的某些列可能因我的更改而改变。

所以NHibernate如果被迫有三次到数据库。

我试图做到的,是只有两个车次:

  1. 我从数据库&获得实体我改变了这个实体
  2. 我节省的一些属性这个实体session.Update(实体)&刷新一次数据库之旅。

可能吗?

回答

4

不,这是不可能的。您必须发出三条SQL命令:select,update,select。 NHibernate确实支持批处理,但它将批量插入或更新,而不是混合命令。

的方法,另外,NHibernate的支持Generated Properties,所以你不必手工更新这些列(它仍然需要一个往返,但它是透明的)

+0

生成的属性?太棒了,我会试试看 – dragonfly