nhibernate - 在 NHibernate 中插入后是否可以抑制更新?

标签 nhibernate

我一直在研究使用 NHibernate 的新应用程序的数据库性能问题。我注意到在某些表上 NH 插入一行,然后使用完全相同的数据更新同一行。到目前为止,我收集到的是在定义了多对一关系的表上完成插入后的更新。

在任何情况下,我都希望 NH 认为数据是相同的并抑制额外的更新。有没有办法完全抑制这个额外的更新?

最佳答案

听起来您在多对一关联上有双向关系。

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

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

关于nhibernate - 在 NHibernate 中插入后是否可以抑制更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1683494/

相关文章:

linq - 数据访问应用程序 block 、NHibernate、ADO.NET Entity Framework 和 LINQ to SQL 之间的主要区别是什么?

mysql - 无法从 NHibernate.Driver.MySqlDataDriver 创建驱动程序

visual-studio - 生成(一)发布可执行文件

c# - 使用 NHibernate 和 native SQL 从表中仅选择几列

asp.net-mvc - NHibernate,依赖注入(inject)。正确关闭ISession

c# - NHibernate - 如何处理 NonUniqueObjectException?

c# - DDD 值对象相等,== 与 .Equals()

c# - 避免在双链场景下指定key列

c# - NHibernate QueryOver - 日期比较表达式

windows - NHibernate 和 Oracle 通过 Windows 身份验证连接