Согласно философии REST, операция PUT
должна (взята из Википедии):
PUT <a href="http://example.com/resources/142" rel="nofollow">http://example.com/resources/142</a>
Обновить адрес членаколлекция, или, если она не существует, создать это.
Кажется, что NHibernate имеет два способа работы с идентификаторами сущностей:
- Авто-генерируйте идентификатор, независимо от того, какое значение пользователь установил.
- Используйте идентификатор, назначенный пользователем, но потеряйте все возможности автоматической генерации.
Проблема здесь с PUT
операция - это часть о создании сущности, если она не существует.Я предполагаю, что если вы PUT
ресурс не существует, он создаст его с идентификатором , как указано в URL (например, 142, если мы используем приведенный выше пример).Тем не менее, NHibernate не позволяет вам установить идентификатор, если он генерируется автоматически.
Так что мой вопрос, есть ли способ заставить NHibernate автоматически генерировать идентификатор, если у объекта его нет?(или имеет значение по умолчанию для типа идентификатора, например 0 для целых чисел), но также сохраняет объект с идентификатором, установленным пользователем?