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/

相关文章:

sql - ORA-00917 : missing comma when insert not exist in oracle

nhibernate - 通过代码进行 Nhibernate 映射的 StringType

c# - Fluent NHibernate - 集合不过滤

c# - 使用 Fluent NHibernate 的非主键身份自动增量映射

sql - WM_CONCAT 重复项删除

sql - 为什么 Oracle SQL 神秘地解决了一个连接中的歧义,而在其他连接中却没有

c# - Fluent Nhibernate 与 MySQL 的连接字符串

c# - 相关表中的流利 nhibernate 鉴别器

c++ - 使用 OCILIB 调用带有输出变量的 Oracle 过程

c# - 如何创建自定义 NHibernate 配置属性?