2009-11-12 3 views
0

Я разместил вопрос в новой группе Fluent-NHibernate, но до сих пор не было ответа от пустоты.Поддерживает ли Fluent NHibernate «триггер-идентичность»

Есть ли свободное NHibernate-сопоставление для NHibernate «триггер-идентичность» метода генерации первичных ключей.

Thanks

+0

Если вы используете GenerateBy.Identity(), это не удается? – Dani

+0

GenerateBy.Identity() использует последовательность спящего режима и генерирует следующий SQL INSERT INTO schema.table (table_id, ...) VALUES (schema.hibernate.sequence, ...), возвращающий table_id в: nhIdOutParam Объекты в вопрос имеют идентификаторы, назначенные триггером, который генерирует идентификатор перед вставкой. – Dave

ответ

0

Таким образом, оказывается, что идентификатор триггера в настоящее время не поддерживается.

3

Попробуйте это:

this.Id(x => x.Id).Column("ID").GeneratedBy.Custom("trigger-identity"); 
+0

пробовал это с Fluent build 636, и он работает (это тоже нужно для моего проекта) – devio

0

До сих пор единственным решением, я нашел, чтобы использовать файл hbm.xml для тех лиц, которые требуют генераторов триггеров идентичности. Тем не менее, мы столкнулись с другой проблемой при использовании идентификаторов триггеров и «длинных» идентификаторов и нашей базы данных Oracle. Существует ошибка, из-за которой NHibernate не переводит значения идентификатора, возвращенные должным образом. Вот запись JIRA:

https://nhibernate.jira.com/browse/NH-1893

4

Просто держать эту дискуссию уточненный:

this.Id(x => x.Id, "id").GeneratedBy.TriggerIdentity(); 

-> Свободный NHibernate V.1.1.0.685

0

Я попытался с FluentNHibernate v2.0.50727

Следующее отображение работает нормально: this.Id (x => x.Id, "id"). GeneratedBy.TriggerIdentity();

Следующее отображение больше не поддерживается: this.Id (x => x.Id) .Column ("ID"). GeneratedBy.Custom ("trigger-identity");