2011-12-13 2 views
1

У меня есть составной ключ в моей таблице, и его часть должна быть сгенерирована последовательностью.
Я попытался следующие, но это не работает - линия, которая устанавливает имя последовательности, кажется, переопределяется составного ключа декларации, следующим образом:Композитный ключ с последовательностью

mapping.Id(x => x.Id).GeneratedBy.SequenceIdentity("SQ_TRANSFORM_ITEMDEL_IDDID"); 
mapping.CompositeId().KeyProperty(x => x.Id, "ITEMDELIVERYDETAIL_ID") 
        .KeyReference(x => x.ItemDelivery, "ITEMDELIVERY_ID", 
                 "PARTITIONDATE"); 

Как решить эту проблему?

+0

- это последовательность по умолчанию или вам нужно сначала выбрать значение последовательности? И разве Id не уникален? – Firo

+0

Что вы подразумеваете под «значением по умолчанию» в контексте последовательности? Только идентификатор уникален, поскольку он генерируется последовательностью. Дата разделения является частью ключа из-за разбиения таблиц ... –

ответ

0

Не указывайте цель доставки в КомпозитныйИндекс, но в качестве ссылки см. Ответ в другом question. Это намного проще.

+0

Это не работает, потому что другие таблицы, ссылающиеся на «ItemDeliveryDetail», могут использовать только идентификатор для ссылки. Однако по причинам скорости также требуется «PARTITIONDATE». –