Как правильно использовать Fluent NHibernate, чтобы получить следующую последовательность в Oracle? - PullRequest
3 голосов
/ 04 ноября 2010

Я использую 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.

Спасибо.

1 Ответ

4 голосов
/ 04 ноября 2010

Просто укажите название последовательности:

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

// Real working code:
Id(x => x.Id).GeneratedBy.Sequence("SEQ_Catalog1");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...