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