【问题标题】:Fluent NHibernate - how to specify sequence name for Id with GeneratedBy.Native()Fluent NHibernate - 如何使用 GeneratedBy.Native() 为 Id 指定序列名称
【发布时间】:2012-11-22 17:44:41
【问题描述】:

我使用 Fluent NHibernate,我需要使用 GeneratedBy.Native() 来生成 Id 以支持 Oracle、DB2 和 MSSQL 数据库。如果我尝试在 Oracle 上像这样运行它并将新记录插入到我得到的表中:

Could not execute query: select hibernate_sequence.nextval from dual
System.Data.OracleClient.OracleException (0x80131938): ORA-02289: sequence does not exist

映射类:

public sealed class ListDataMap : ClassMap<ListData>
{
    public ListDataMap()
    {
        Table("LIST_DEF");

        Id(x => x.Id, "ID").Not.Nullable().GeneratedBy.Native();
        //other mapping
    }
}

如何指定序列的名称?我不想使用 hibernate_sequence 因为我需要超过 1 个序列并且我不想拥有 1 个共享序列。

谢谢!

【问题讨论】:

    标签: c# fluent-nhibernate nhibernate-mapping fluent-nhibernate-mapping


    【解决方案1】:

    我在这里找到了答案:http://thatextramile.be/blog/2007/07/native-id-generation-with-nhibernate/

    就这么简单:

    Id(x => x.Id, "ID").Not.Nullable().GeneratedBy.Native(
        builder => builder.AddParam("sequence", "SEQ_LIST_DEF")
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多