oracle - 如何正确使用Fluent NHibernate在Oracle中获取下一个Sequence?

标签 oracle nhibernate fluent-nhibernate

我将 NHibernate/Fluent NHibernate 与 Oracle 结合使用,但遇到了问题。我已经定义了以下映射文件:

public OrderMap()
{
    Table("ORDERS");
    Id(x => x.OrderId, "ORDER_ID").GeneratedBy.Sequence("select ORDERS_SQ.nextval from orders");
    Map(x => x.CreatedBy, "CREATED_BY");
    Map(x => x.OrderStatusCd, "ORDER_STATUS_CD");
    Map(x => x.StoreGroupId, "STORE_GROUP_ID");
    Map(x => x.IsActive, "IS_ACTIVE");
    Map(x => x.OrderDate, "ORDER_DATE");
}

当我去运行我的项目时,我收到以下错误:

创建 SessionFactory 时使用了无效或不完整的配置。

如果我删除 .GeneratedBy.Sequence("select ORDERS_SQ.nextval from orders"); 行,应用程序会运行,但在保存记录时我显然没有得到下一个序列。我试过只做 .GeneratedBy.Sequence("ORDERS_SQ"); 但我似乎什么都做不了。

谁能告诉我使用 Fluent NHibernate 正确获取下一个可用序列的正确方法吗?

我正在使用 Fluent NHibernate 1.1 和 NHibernate 3.0 Beta。

谢谢。

最佳答案

只需指定序列的名称:

Id(x => x.OrderId).Column("ORDER_ID").GeneratedBy.Sequence("ORDERS_SQ");

// Real working code:
Id(x => x.Id).GeneratedBy.Sequence("SEQ_Catalog1");

关于oracle - 如何正确使用Fluent NHibernate在Oracle中获取下一个Sequence?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4097784/

相关文章:

c# - 带有 nhibernate/fluent 的枚举标志

sql - 需要写子查询来计算每个月的收入

oracle - 如何在 Oracle 包中执行私有(private)过程?

oracle - 为什么Oracle的Spark查询(负载)与SQOOP相比这么慢?

Nhibernate 组件映射 : Parent Object null in Value Object while querying from database

c# - 如何在 MySQL 服务器和 Microsoft SQL Server 2008 中使用 NHibernate

java - 使用 Jndi 的 oracle DB 的 Tomcat 连接池

c# - FluentNhibernate和表/列名大写字母的保存和转义?

c# - 流利的 NHibernate : How to tell it not to map a base class

c#-4.0 - nhibernate CurrentSessionContext.Hasbind 未设置对象引用