Я настраиваю n-уровневое приложение с MVC, Ninject и NHibernate (я впервые использовал эти технологии). Для ясности, уровни - это уровень «Данные», уровень «Услуги» и уровень «Веб» (все это отдельные проекты).
С MVC у вас есть модели, которые находятся в папке «Модели». Кажется необходимым разместить здесь мои модели для создания строго типизированных представлений и в целом придерживаться философии MVC.
Однако с NHibernate мне также нужны мои модели на уровне «Данные», чтобы могло происходить отображение и чтобы NHibernate мог создавать экземпляры реальных объектов для возврата на уровень сервисов.
Дублирование классов в проектах не очень СУХОЕ, и их абстрагирование в их собственную библиотеку, похоже, не очень хорошо работает с MVC (ни на практике, ни по философии).
Есть предположения? Как вы структурируете свои объекты O / RM по сравнению с моделями MVC?