Когда вы разрабатываете приложение, ваша главная забота должна быть связана с бизнес-логикой, поэтому вам нужно спроектировать свой доменный уровень, используя сущности и объекты значений.
Когда вы разрабатываете приложения таким способом, вы реализуетеОбъекты могут быть объектами с идентичными объектами или объектами значений, которые являются неизменяемыми, поэтому не логично размещать идентификатор для цветного объекта или объекта адреса пользователя (если это не приложение доставки или около того).
Вы должны разработатьВаша модель домена должна быть как можно более независимой от постоянства, чтобы абстрагировать хранилище технических данных и сосредоточиться на бизнес-логике, которая является главной целью вашего приложения.
Когда вы достигнете реализации уровня отображения с использованием orm, например NHibernate,Вы отображаете объекты-значения как компоненты, потому что они не имеют идентичности, и не логично портить домен и помещать идентичность только для сохранения.Подумайте также о природе неизменности этих компонентов: когда вы меняете цвет или адрес, который вы на самом деле не изменяете, вы заменяете его, учитывая, что значения объектов регулярно малы, добавление явного идентификатора не принесет никакой пользы даже с точки зрения базы данных, так какВам не нужно будет индексировать их, искать их по идентификатору или даже запрашивать их отдельно, поэтому добавление идентификатора только усложнит хранение.
Если вы обнаружили, что ваша коллекция компонентов довольно большая или сложная, то вы можете неправильно использоватьобъект значения, и вам может понадобиться изменить его или преобразовать в сущность с идентификатором.
проверьте this и this для получения более подробной информации