в моделировании ООП существует два разных типа. Типы ссылок и типы значений. Разница между ними заключается в том, что для справочных типов вы заботитесь о , которыми они являются , которые идентифицируются некоторым идентификатором, а для типов значений вы заботитесь о чем они являются.
Простой пример в мире .net:
DateTime d1 = новый DateTime (2012,12,21);
DateTime d2 = новый DateTime (2012,12,21);
Теперь нас действительно волнует, указывают ли эти два времени даты на разные экземпляры памяти (и они указывают так)
Нет, но мы просто заботимся о том, кто они, следовательно, они равны.
Сначала вы должны решить, должна ли ваша сущность быть типом значения или ссылочным типом. Если это ссылочный тип, вы должны следовать приведенному выше определению и дать nhibernate некоторый идентификатор. Если вы не можете дать идентификатор, тогда это должен быть тип значения. В этом случае вам не важно, какой это, а какой. Для такого случая nhibernate предлагает вам компонентов . С компонентами, которые могут находиться в одной и той же таблице или отдельно, нет необходимости определять ID. Однако nhibernate не будет относиться к ним как к сущности.