Сопоставить секционированную таблицу со столбцом дискриминатора секций - PullRequest
0 голосов
/ 12 декабря 2011

У меня есть устаревшая база данных Oracle 10g. В этой базе данных есть таблица ITEMDELIVERY со столбцом DELIVERY_DATE. Таблица разделена этим столбцом. По этой причине первичный ключ этой таблицы является составным ключом, включающим столбцы ITEMDELIVERY_ID и DELIVERY_DATE.
. Есть еще одна таблица ITEMDELIVERYDETAIL с FK до ITEMDELIVERY. Чтобы иметь возможность извлечь выгоду из разделения и иметь возможность разделения самого себя, эта таблица имеет столбец PARTITION_DATE. ITEMDELIVERY_ID и PARTITION_DATE формируют ФК до ITEMDELIVERY.

PARTITION_DATE не имеет делового значения в ITEMDELIVERYDETAIL и существует только по техническим причинам. Из-за этого я хотел бы избежать указания этого столбца в моей сущности.
Я попробовал следующее в реализации IAutoMappingOverride<ItemDeliveryDetail>:

mapping.Map(x => x.ItemDelivery.DeliveryDate).Column("PARTITION_DATE");

Но это не сработало, я получаю следующее исключение:

NHibernate.PropertyNotFoundException: Не удалось найти получатель для свойства 'DeliveryDate' в классе 'Domain.ItemDeliveryDetail'

Есть ли способ достичь моей цели?

Ответы [ 3 ]

2 голосов
/ 13 декабря 2011

Я думаю, что для ответа на этот вопрос используется ссылка на ItemDelivery в ItemDeliveryDetail, которую вы показали в другом вопросе .

mapping.References(x => x.ItemDelivery)
    .Columns("ITEMDELIVERY_ID", "PARTITIONDATE");

, это делает его невидимым, автоматически заполняемыми ссылка на его родителя вменяема

1 голос
/ 13 декабря 2011

В "классическом" NHibernate я однажды решил похожую проблему, добавив access="private" к отображению свойств. Это говорит NHibernate для сопоставления с закрытой переменной-членом, которая, таким образом, невидима для остальной части модели.

Fluent NHibernate имеет решение для этого, которое, по их собственным словам, не идеально, но оно поддерживает эту функцию.

0 голосов
/ 12 декабря 2011

Если вы не заинтересованы в том, чтобы оно было в вашем домене, почему вы его отображаете? Если вы хотите отобразить свойство Item, добавьте его в отображение класса ItemDelivery

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...