генератор классов NHibernate - PullRequest
0 голосов
/ 09 августа 2010

Я использовал класс генератора assigned для назначения значений моего первичного ключа. Я прочитал несколько блогов, в которых говорится, что hilo лучше. Есть ли преимущество в assigned над hilo?

1 Ответ

3 голосов
/ 09 августа 2010

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

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

Я бы сказал, assigned для особых случаев, а не для обычных приложений.Обычно вы используете искусственные ключи, поэтому вам не важно точное значение.Сгенерировать значение самостоятельно может быть сложно, по крайней мере, когда вы рассматриваете несколько процессов, использующих одну и ту же базу данных.

Существует большая разница между assigned и (большинством?) Другими генераторами идентификаторов.assigned ключи не передаются ни NHibernate, ни базой данных.NHibernate обычно знает, находится ли объект в базе данных, оценивая идентификатор.Когда вы назначаете его самостоятельно, вам также необходимо знать, нужно ли вставлять или обновлять сущность.Это делает этот генератор идентификаторов особенным.Ваш код будет выглядеть иначе, когда вы используете assigned, как и при использовании любого другого генератора идентификаторов.

...