在NHibernate中自动更新行李

时间:2008-09-23 12:16:06

标签: asp.net database nhibernate

我使用ASP.Net和NHibernate访问Pgsql数据库。

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

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

以上是我用于行李的代码示例。

我想知道是否有其他人在任何地方遇到过这个问题,你做了什么来解决它?

1 个答案:

答案 0 :(得分:4)

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

  

您可以告诉NHibernate自动遍历实体的关联,并根据级联选项执行操作。例如,将未保存的实体添加到具有保存更新级联的集合将导致它与其父对象一起保存,而不需要我们这方面的明确指示。

以下是每个级联选项的含义:

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

更多信息: NHibernate Cascades: the different between all, all-delete-orphans and save-update