2009-11-05 32 views
6

我已经抛出研究数据库性能问题与使用NHibernate的新应用程序。我注意到,在一些表上NH执行了一行插入操作,然后更新了具有完全相同数据的同一行。到目前为止,我收集到的是插入后的更新在定义了多对一关系的表上完成。在任何情况下,我都希望NH能够指出数据是相同的,并抑制额外的更新。有没有办法抑制这种额外的更新?是否有可能在NHibernate中插入后禁止更新?

+0

代码?插入后的所有列的更新不正常。 – dotjoe 2009-11-05 21:07:18

回答

6

听起来好像你在多对一的关联上有双向关系。

解决该问题的方法是在关系的一对多一侧添加inverse="true"Here is an example

插入由孩子保存其数据执行。更新由父级设置数据库中子记录的parentId执行。如果关系是单向的,那么第一个插入将没有parentId,并且需要更新。在双向关系中,更新过程如您所描述的那样是多余的。 inverse="true"告诉父母,孩子负责维护关系,从而防止额外的更新。

+3

-1,因为这发生在非双向关系上。 – BradLaney 2012-02-07 23:26:06

相关问题