Вы можете определить свои бизнес-объекты в отдельный слой. Тогда у вас могут быть интерфейсы, определяющие операции CRUD с этими бизнес-объектами (репозиториями). Тогда у вас будет конкретная реализация этих репозиториев: в вашем случае используется NHibernate. Здесь у вас будет логика доступа к данным и сопоставления FluentNHibernate. Наконец, у вас будет сервисный уровень, который будет определять сложные бизнес-операции, состоящие из нескольких простых операций CRUD в ваших бизнес-объектах. Бизнес-уровень также может содержать логику проверки бизнеса.
Сервисный уровень и уровень доступа к данным будут слабо связаны благодаря интерфейсам, которые реализуют ваши репозитории, бизнес-уровень не должен знать о конкретных реализациях этих репозиториев.
Наконец, ваши контроллеры MVC будут работать с сервисными методами и бизнес-объектами. Именно на уровне пользовательского интерфейса (приложение MVC) вы также определяете модели представления, чтобы действия контроллера могли отображаться между бизнес-объектами и моделями представления и передавать эти модели представления представлениям.