В разделе «Генератор идентификаторов NHibernate» в файлах сопоставления что означает назначение и выбор? - PullRequest
3 голосов
/ 01 июня 2011

В NHibernate разделе «Генератор идентификаторов» в файлах сопоставления. Что означает назначение и выбор?

Ответы [ 2 ]

6 голосов
/ 01 июня 2011

assigned означает, что вы присваиваете первичный ключ в коде перед сохранением объекта в сеансе.

select означает, что он назначен базой данных, и он получен из базы данных путем запроса некоторыхуникальный ключ.

4 голосов
/ 01 июня 2011

Идентификационные данные / последовательность и назначены. Из документации NH :

5.1.5.1. генератор

Для баз данных, которые поддерживают идентичность столбцы (DB2, MySQL, Sybase, MS SQL), Вы можете использовать генерацию идентификационного ключа. Для баз данных, которые поддерживают последовательности (DB2, Oracle, PostgreSQL, Interbase, McKoi, SAP DB) вы можете использовать последовательность генерация стиля ключа. Оба эти стратегии требуют двух запросов SQL для вставить новый объект.

uid_sequence Для кроссплатформенной разработки, родная стратегия будет выбирать из личность, последовательность и хило стратегии, в зависимости от Возможности базового базы данных.

5.1.5.7. Назначенные идентификаторы

Если вы хотите, чтобы приложение назначало идентификаторы (в отличие от наличия NHibernate генерировать их), вы можете использовать назначенный генератор. Это особенное генератор будет использовать идентификатор значение, уже присвоенное объекту идентификатор свойства. Будь очень осторожен при использовании этой функции для назначения клавиш с деловым смыслом (почти всегда ужасное дизайнерское решение).

Из-за своей сущности, сущности что использовать этот генератор нельзя сохранено через ISession Метод SaveOrUpdate (). Вместо тебя должны явно указать NHibernate, если объект должен быть сохранены или обновлены путем вызова Сохранить () или Обновить () метода ISession.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...