Вы должны отобразить свои сущности, используя Fluent NHibernate, поскольку именно здесь вы отображаете структуру базы данных в вашу / из структуры вашей базы данных.
Что касается DAO, то это вопрос личного вкуса.Обычно люди любят использовать DAO некоторого рода (хотя люди любят называть их хранилищами в наши дни).Эти классы будут использовать NHibernate ISession для чтения / записи данных в базу данных и из нее.Как правило, текущие средства работы с ними - определить общий интерфейс с Get<T>(int id)
, GetAll<T>()
, 'Delete () type methods defined to handle CRUD ops, with
T` - типом сущности.
Однако это также возможноиспользовать ISession непосредственно в коде презентации, поскольку он уже предоставляет абстракцию для чтения / записи данных.Если вы идете по этому пути, то вы открываете NHibernate для остальной части вашего приложения, но вы также удаляете один уровень абстракции.
Что касается того, какой слой есть, то NHibernate составляет 95% -100% от вашего уровня персистентности.,Вы можете добавить свои собственные абстракции поверх них, чтобы создать API, который сделает вас счастливым, но это полностью ваше дело.