【问题标题】:Bounding an eagerly fetched collection绑定急切获取的集合
【发布时间】:2010-08-12 20:07:42
【问题描述】:

我如何急切地获取一个集合,但只获取前 N 个项目?

使用此代码有效,但是否有“官方方式”来实现?

public Gallery GetById(int id)
{
    var session = GetSession();

    var criteria = session.CreateCriteria<Gallery>()
        .Add(Expression.Eq("Id", id))

        .SetFetchMode("Pictures", FetchMode.Eager)         
        .CreateAlias("Pictures", "p")

        .SetFirstResult(0)
        .SetMaxResults(24)
        ;

    return criteria.UniqueResult<Gallery>();
}

在这种情况下,我将绑定Gallery 的结果,这无论如何都是唯一的结果,但我想绑定Pictures 的结果。

【问题讨论】:

  • 在这种情况下。但是其他情况呢?

标签: nhibernate eager-loading


【解决方案1】:

您的代码工作正常,完全可以接受。如果您想始终急切地获取,您可以在表映射配置(HBM、Fluent 或您使用的任何解决方案)中设置它,然后明确告诉它不要在以下情况下你不想急切地获取。两种方式都可以正常工作并且可以接受。根据您的项目需求和团队的编码风格,使用更方便或更安全的方法。

【讨论】:

    猜你喜欢
    • 2011-06-24
    • 1970-01-01
    • 2023-03-24
    • 2012-12-17
    • 1970-01-01
    • 2012-11-02
    • 2016-02-19
    • 2011-08-14
    • 2011-12-16
    相关资源
    最近更新 更多