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级联:所有,全部删除的孤儿和保存更新之间的区别