在NHibernate 1.2中,是否可以使用数据库触发器生成ID?基本上我们需要更改其中一个表以停止使用序列,而是使用触发器来生成主键。所以显然我需要更新nhibernate映射以使用不同的生成器类,但我不确定应该使用哪个类,或者即使在1.2中支持它。任何帮助将不胜感激。谢谢!
答案 0 :(得分:0)
NHibernate允许您这样做,但只允许starting from 2.1.0:
<强>触发标识强>
“trigger-identity”是一个NHIDnate特定功能,其中包含POID 由RADMS在INSERT查询中通过BEFORE INSERT生成 触发。在这种情况下,您可以使用任何支持的类型,包括自定义 类型,限制为“单列”(到目前为止)......
选择强>
“select”生成器是“trigger-identity”的偏差。这个 发电机与自然功能一起工作。区别 “trigger-identity”是SELECT检索POID值 使用natural-id字段作为过滤器......
如果您不想升级到更高版本的NHibernate(因为.NET 1.1?),那么您可以尝试Ayende's custom dialect solution或将NHibernate扩展为suggested here。