2009-11-12 46 views
0

我在Fluent-NHibernate新組中發佈了這個問題,但到目前爲止一直沒有任何答案。流利的NHibernate是否支持「觸發器身份」

是否有一個流暢的NHibernate生成主鍵的NHibernate「trigger-identity」方法。

感謝

+0

如果您使用GenerateBy.Identity()它會失敗嗎? – Dani 2009-11-12 16:43:49

+0

GenerateBy.Identity()使用休眠序列並生成以下SQL INSERT INTO schema.table(table_id的,...)VALUES(schema.hibernate.sequence,...)再次成的table_id:nhIdOutParam 所述的實體問題的ID由插入前生成ID的觸發器分配。 – Dave 2009-11-12 17:42:46

回答

0

因此,原來目前不支持觸發身份。

3

試試這個:

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

與Fluent build 636一起試用了它,它也可以工作(我的項目也需要這個) – devio 2010-04-14 09:38:52

0

到目前爲止,我已經找到了唯一的解決辦法是使用hbm.xml文件中爲那些需要觸發身份發電機實體。但是,在使用觸發標識和「長」標識以及我們的Oracle數據庫時,我們遇到了另一個問題。有一個錯誤,NHibernate不會翻譯正確返回的Id值。這裏是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」);