NHibernate中的自动更新包

时间:2020-03-06 14:35:40  来源:igfitidea点击:

我将NHibernate与ASP.Net一起使用,以访问Pgsql数据库。

对于某些对象,我们使用NHibernate包,这些包映射到应用程序中的List对象。有时,当我们更新与数据库中的列表有关的内容时,我们需要通过NHibernate刷新对象的问题。

<bag name="Objects" inverse="true" lazy="true" generic="true" >
   <key column="object_id" />
   <one-to-many class="Object" />
</bag>

上面是我在购物袋中使用的代码示例。

我想知道是否还有其他人在任何地方遇到过此问题,我们将如何解决此问题?

解决方案

我们是否尝试过NHibernate级联,例如save-update?

You are able to tell NHibernate to automatically traverse an entity's associations, and act according to the cascade option. For instance, adding an unsaved entity to a collection with save-update cascade will cause it to be saved along with its parent object, without any need for explicit instructions on our side.

这是每个级联选项的含义:

  • 无-不执行任何级联,让用户处理它们
  • save-update-保存/更新对象时,检查关联并保存/更新需要它的任何对象(包括在多对多方案中保存/更新关联)。
  • delete-删除对象时,删除关联中的所有对象。
  • delete-orphans-删除对象时,删除关联中的所有对象。除此之外,当一个对象从关联中删除并且不与另一个对象(孤立的)关联时,也将其删除。
  • 全部-保存/更新/删除对象时,检查关联并保存/更新/删除找到的所有对象。
  • all-delete-orphans-保存/更新/删除对象时,检查关联并保存/更新/删除所有找到的对象。除此之外,当一个对象从关联中删除并且不与另一个对象(孤立的)关联时,也将其删除。

更多信息在这里:
NHibernate级联:所有,全部删除的孤儿和保存更新之间的区别