Как выглядит ваш метод FindAll ()? Возможно, он использует один и тот же UnitOfWork / Session для обоих вызовов GetParentById (), а дочерний репозиторий использует другой UnitOfWork / Session.
Если это так, то второй вызов GetParentById () возвращает объект из кэша сеанса (первого уровня) без попадания в базу данных.
Редактировать: Вы можете просмотреть исходный код Rhino.Commons на:
https://rhino -tools.svn.sourceforge.net / svnroot / носорог-инструменты / багажник / Обще / Rhino.Commons.NHibernate /
Сессия инкапсулирована в классе Rhino.Commons.UnitOfWork. Я не знаком с реализацией UnitOfWork Ayende, поэтому я не смогу дать вам лучшее решение для этого, но вот кое-что, с чего можно начать ....
Попробуйте позвонить
Session.Clear();
в верхней части вашего метода GetParentById ().
Я повторяю, вам, вероятно, потребуется найти лучший способ сделать это (возможно, с помощью UnitOfWork), но это должно очистить все объекты из вашего кэша сеанса и, следовательно, загрузить новые из базы данных при следующем запросе.