Я много разбираюсь в подходе DDD (вездесущий язык, агрегаты, репозитории и т.д.), и я думаю, что, вопреки тому, что я читал много, сущности должны иметь поведение, а не будучи агностиком. Все примеры, которые я вижу, как правило, представляют сущности с виртуальными автоматическими свойствами и пустой конструктор (защищенный или худший, общедоступный) и его. Я рассматриваю такие объекты больше как DTO, а затем объекты.
Я выполняю создание фреймворка со своим конкретным API, и я не хочу быть привязан к ORM. Поэтому я сначала создал домен (не думая о постоянстве), и теперь я хотел бы использовать NHibernate в качестве инструмента для сохранения, поэтому я добавил новый проект в свое текущее решение, чтобы гарантировать, что моя модель не изменена для поддержки NHibernate. Этот проект должен быть реализацией абстрактных репозиториев, которые живут внутри моего домена. И теперь возникают трудности.
Так как это мой первый раз с NHibernate (я также пытаюсь использовать Fluent Nhibernate, но это кажется еще более ограничивающим), я хотел бы знать:
- Можно ли использовать NHibernate без изменения DDD-модели, которая является частью структуры
- Вещи (ограничения), необходимые для работы NHibernate как ожидаемые и эффективные (виртуальные свойства, пустые конструкторы и т.д.) Я думаю, что этот список был бы полезен для многих людей, которые начинают изучать NHibernate.
Пожалуйста, имейте в виду, что я создаю фреймворк, поэтому Open/Closed Principle для меня очень важен.
P.S.: Извините, если мой английский не очень хорош, я из Монреаля, и я говорю по-французски.
Изменить 1: Ниже приведена одна проблема с NHibernate - Как сопоставить тип с Nhibernate (и Fluent NHibernate) p >