3

我们有一个在 Fluent NHibernate 中映射的表,其 ID 由 Hilo 序列生成。

this.Id(x => x.Id).GeneratedBy.SeqHiLo("seq_hp", "1000");

我们现在需要在 Id 上指定一个默认值(设置为下一个序列值)以使其与 SQL Merge 语句一起使用。

但是,NHibernate 只会在表生成后才生成序列,因此下一条语句将失败,因为(还)没有序列。

this.Id(x => x.Id).GeneratedBy.SeqHiLo("seq_hp", "1000")
                  .Default("next value for seq_hp");

NHibernate 中是否有任何方法可以在创建表之前指定创建序列?我们正在使用 Fluent 映射,但欢迎使用 NHibernate 的代码或 XML 映射解决方案。

4

1 回答 1

1

反过来也是可行的。使用 Sql实现IAuxiliaryDatabaseObject为列添加默认值。有AbstractAuxiliaryDatabaseObject一个提供默认实现的基类。

于 2013-05-14T05:51:07.390 回答