NHibernate Session может соответствовать шаблону репозитория, но если вы строите свои контроллеры для непосредственного взаимодействия с ним, вы не будете по-настоящему абстрагировать его. Дразнить, когда ты не абстрагируешься, это не надежное решение.
Если вы абсолютно не хотите абстрагировать его (что является чисто ленивым, IMO), то sqllite db, как упомянуто Джейсоном, - хороший вызов. Тем не менее, в большом проекте правильное разделение ваших интересов - очень хорошая идея.
Модель моего домена содержит интерфейсы как для объектов доступа к данным (репозитории), так и для служб, которые их используют. Это позволяет мне действительно отделить свои проблемы с данными от своих бизнес-задач, которые должны быть полностью отделены от проблем представления / приложения. Это позволяет проводить надлежащее модульное тестирование, а также легко заменять детали или производить надлежащую насмешку.
Каждый уровень говорит ТОЛЬКО с интерфейсами, НИКОГДА с реализацией. Кроме того, мой прикладной уровень никогда не взаимодействует напрямую с сервисами уровня данных. То, что это происходит, поощряет разработчиков быть ленивыми и начинать использовать в приложении бизнес-логику или логику данных.