gpt4 book ai didi

NHibernate:通过聚合根处理子集合时避免完整的内存中集合

转载 作者:行者123 更新时间:2023-12-05 01:34:23 24 4
gpt4 key购买 nike

考虑下面的简化类,让我们假设:

  • parent 可以有相对大量的 child (例如1000)
  • 子集合延迟加载
  • 我们已经通过 ParentRepository 的标准 Get 方法中的 Id 加载了一个父级,现在将读取 OldestChild 属性

  • class Parent 
    {
    public IList<Child> Children { get; set; }

    public Child OldestChild
    {
    get { return Children.OrderByDescending(c => c.Age).FirstOrDefault();
    }

    }


    使用 NHibernate 和 Repositories 时,是否有一些最佳实践方法可以同时满足两者:
  • a) 应该通过聚合根 (Parent) 选择最年长的 child - [即。无需通过例如独立查询子表使用父 ID 的 ChildRepository] ​​
  • b) 应避免将整个子集合加载到内存中(理想情况下,最旧的子查询应由 DB 处理)

  • 这似乎既可行又容易,但我没有看到实现它的明显方法。可能我错过了什么?

    我正在使用 NHibernate 2.1,所以一个解决方案会很棒,尽管很快就会升级到 3。

    最佳答案

    我会在您的存储库上创建一个专门的方法,它返回给定父级的最大子级。

    关于NHibernate:通过聚合根处理子集合时避免完整的内存中集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5847431/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com