【问题标题】:update parent cause lazy load on child collection更新父项导致子集合上的延迟加载
【发布时间】:2011-05-24 17:29:28
【问题描述】:

我有父子关系,子集合被映射为惰性。我取了一个父,当然因为懒加载子集合没有加载。但是当我想更新我的父 NH 时首先加载子集合。我很有趣这是默认情况下,或者我在某个地方出错了。集合是惰性的,inverse=true 和 cascade="all-delete-orphan"。我假设由于级联映射,NH 想要检查子集合上的更改并且它是第一次访问,所以延迟加载完成了它的工作。请有人确认一下。

【问题讨论】:

    标签: nhibernate


    【解决方案1】:

    在更新父对象时,NHibernate 不应该加载子集合除非您正在修改外键关系列。

    Inverse="true" 这意味着子集合中的对象负责管理与父集合的关系。

    cascade="all-delete-orphan" 向集合中添加新的子对象时,它将级联到数据库,而无需先显式调用 Session.Save(childobj)。这也意味着如果您删除父对象,所有子集合对象也将从数据库中删除。

    我将这些确切设置用于我的子集合关系,但没有看到这种行为。

    您能否发布您的映射/流利的地图/测试代码,以便更深入地了解手头的问题?

    【讨论】:

    • 好的,等待您的回复。映射一切都很好。问题出在我的存储库设计中(一些帮助程序类在更新之前读取子集合导致延迟加载)。 Nhibernate 按规定完成了所有工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-24
    • 2016-12-21
    • 2018-03-28
    相关资源
    最近更新 更多