我正在使用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。
感谢。
答案 0 :(得分:4)
只需指定序列的名称:
Id(x => x.OrderId).Column("ORDER_ID").GeneratedBy.Sequence("ORDERS_SQ");
// Real working code:
Id(x => x.Id).GeneratedBy.Sequence("SEQ_Catalog1");