Ограничение нетерпеливо собранной коллекции - PullRequest
2 голосов
/ 13 августа 2010

Как я могу охотно получить коллекцию, но только первые 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.

1 Ответ

0 голосов
/ 08 сентября 2011

Ваш код работает правильно и является вполне приемлемым.Если вы хотите всегда с нетерпением извлекать данные, вы можете установить их в своей конфигурации отображения таблиц (HBM, Fluent или с любым другим решением, которое вы используете), а затем явно запретить это для случаев, когдане хочу охотно доставатьОба способа работают нормально и приемлемы.Используйте тот, который более удобен или безопасен для нужд вашего проекта и стиля кодирования команды.

...