Есть несколько аналогичных вопросов по этому вопросу, я до сих пор не нашел достаточных оснований для того, чтобы решить, куда идти.
Реальный вопрос: разумно ли абстрагировать NHibernate с использованием шаблона репозитория или не?
Похоже, что единственная причина абстрагирования - оставить себе возможность заменить NHibernate другим ORM, если это необходимо. Но создание репозиториев и абстрагирование запросов похоже на добавление еще одного слоя и большую часть сантехники.
Один из вариантов заключается в том, чтобы использовать exose IQueryable<T>
для бизнес-уровня и использовать LINQ, но из моего опыта поддержка LINQ до сих пор не полностью реализована в NHibernate (запросы просто не всегда работают должным образом, и я ненавижу проводить время на отладка структуры).
Хотя ссылка на NHibernate в моем бизнес-слое причиняет мне боль, он должен быть абстракцией доступа к данным сам по себе, правильно?
Что вы думаете об этом?