Свободно управляемый домен Nhibernate - PullRequest
3 голосов
/ 16 июля 2010

Привет Мне интересно, как DDD действительно реализован с использованием Fluent Nhibernate.например, у меня есть класс сущности с именем User и другой класс с именем UserProfile, поскольку я заинтересован, чтобы UserProfile был не классом сущности, а типом значения, и не должен действительно иметь идентичность как таковую, если он не связан с сущностью User.Теперь для практической реализации пользовательский профиль в идеале будет храниться в таблице базы данных с именем UserProfile, и я не могу понять, как мне избежать использования уникального идентификатора для этой таблицы.Я также использую FluentNhibernate в качестве ORM, и я полагаю, что класс UserProfile должен иметь Id для правильного отображения.Итак, что происходит с концепцией типов значений, совокупного корня и т. Д. Действительно ли возможно реализовать настоящий DDD с помощью свободного Nhibernate или просто мое понимание DDD плохое.Все, что я действительно видел, это много теории об этом, но я не видел проект, который действительно имеет настоящий DDD, использующий NHibernate.Теперь я немного запутался, любая помощь приветствуется

Обновление

Хорошо, после небольшого чтения я понимаю, что репозитории используются для управления агрегированными корнями, устраняет некоторые проблемы, но в конечном итогекласс userprofile не является единым корневым каталогом, так что я должен все же дать ему идентификатор?очевидно, что он нужен в таблице базы данных, поэтому я предполагаю, что классу также нужен идентификатор.Но не противоречит ли это принципу DDD?как обойти это?

1 Ответ

3 голосов
/ 16 июля 2010

Для поддержки ORM (NHibernate) потребуется идентификатор, и это прекрасно.Различие между сущностями и типами ценностей заключается в их понятиях идентичности и продолжительности жизни.Наличие поля Id - это просто деталь реализации.

...