Хотелось бы узнать, есть ли способ отключить автоматическую загрузку дочерних записей в nHibernate (для одного: много отношений).
Мы можем легко отключить ленивую загрузку свойств, но я хочу отключить любой вид автоматической загрузки (ленивый и не ленивый оба). Я хочу загружать данные только с помощью запроса (например, HQL или критерии)
Я все же хотел бы определить отношения между родительскими дочерними записями в файле отображения, чтобы облегчить HQL и иметь возможность присоединения родительских дочерних объектов, но я не хочу, чтобы дочерние записи загружались как часть родительской записи, если только запрос на родительскую запись
прямо заявляет, что (через нетерпеливую выборку и т. д.).
Пример:
Извлечение записей отдела из базы данных не должно извлекать все записи сотрудников из базы данных, потому что это может никогда не понадобиться.
Один из вариантов здесь - установить коллекцию Employees в Отделе как ленивую загрузку. Проблема с этим подходом состоит в том, что, как только объект передается вызывающему API, он может «коснуться» свойства отложенной загрузки и получить весь список из БД.
Я пытался использовать 'evict' - чтобы отключить объект, но, похоже, он не работает постоянно и не выполняет глубокое выселение объекта.
Кроме того, он абстрагирует ленивый загруженный тип свойства с прокси-классом, который позже приводит к хаосу в коде, где мы пытаемся воздействовать на объект с помощью отражения, и встречает неизрасходованный тип объекта.
Я новичок в nHibernate, любые указатели или помощь будут очень полезны.