NHibernate 1.2 Id, сгенерированный триггером базы данных - PullRequest
1 голос
/ 21 сентября 2011

В NHibernate 1.2 возможно ли иметь идентификатор, сгенерированный триггером базы данных? По сути, нам нужно изменить одну из наших таблиц, чтобы прекратить использование последовательности, и вместо этого использовать триггер для генерации первичного ключа. Очевидно, что мне нужно обновить отображение nhibernate, чтобы использовать другой класс генератора, но я не уверен, какой класс мне следует использовать, или даже если это поддерживается в 1.2. Любая помощь будет принята с благодарностью. Спасибо!

1 Ответ

0 голосов
/ 22 сентября 2011

NHibernate позволяет вам делать это, но только начиная с 2.1.0 :

идентификатор триггера

Триггер «-dentity »- это особая функция NHibernate, в которой СУБД генерирует POID по запросу INSERT через триггер BEFORE INSERT.В этом случае вы можете использовать любой поддерживаемый тип, в том числе пользовательский, с ограничением «до одного столбца» (пока) ...

выберите

Генератор «select» - это отклонение «идентичности триггера».Этот генератор работает вместе с функцией Natural-ID.Разница «идентификатор-триггера» заключается в том, что значение POID извлекается с помощью SELECT с использованием полей естественного идентификатора в качестве фильтра ...

Если вы не хотите обновляться до более поздних версий NHibernate(из-за .NET 1.1?), тогда вы можете попробовать пользовательское решение диалекта Ayende или расширить NHibernate, как предложено здесь .

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