我需要从种子表中的列生成一个标识,并递增该列中的值。
e.g
Seed Table:
name "analysisid"
id 1
Analysis Table:
id
name
description
在分析映射上,我需要确保从种子表中获取id,并在插入分析时更新seedid的analyzeid。我是否实现了继承自TableGenerator的自定义类?
答案 0 :(得分:4)
NHibernate包含多个identity generation strategies,并通过NHibernate.Id.IIdentifierGenerator
包含自定义扩展机制。
您可以通过实现一个insert trigger来获取并为实体Analysis分配下一个标识符。在这种情况下,请使用<generator class="trigger-identity" />
。
另一种方法是通过实施IIdentifierGenerator
并映射为<generator class="My.Namespace.MyIdentifierGenerator" />
来构建自己的标识符策略。
在流利的情况下,这些生成器通过以下方式进行映射:
Id( x => x.Id ).GeneratedBy.Custom<NHibernate.Id.TriggerIdentityGenerator>();
Id( x => x.Id ).GeneratedBy.Custom<My.Namespace.MyIdentifierGenerator>();