nHibernate: значение по умолчанию в сопоставлении многие-к-одному с составными ключами - PullRequest
0 голосов
/ 01 ноября 2011

Я работаю над устаревшей базой данных, которую нельзя изменить.
У меня есть таблица (Table1) с отношением многие-к-одному с другой таблицей (Table2), которая имеет составной ключ.
Если бы все было прямо вперед, отображение для table1 могло бы выглядеть так:

<class name="Table1" table="Table1">
  <id name="Id" column="I_ID"></id>
  <many-to-one name="Table2" class="Table2">
    <column name="I_TABLE2_ID1"></column>
    <column name="I_TABLE2_ID2"></column>
  </many-to-one>
</class>

Моя проблема в том, что у меня нет столбца I_TABLE2_ID2 в Таблице 1.
Поэтому я хотел бы использовать вместо этого значение по умолчанию. Есть ли способ сделать это в файле сопоставления?

EDIT1:
Кажется, работает следующее отображение:

<class name="Table1" table="Table1">
  <id name="Id" column="I_ID"></id>
  <property name="Table2Id1" column="I_TABLE2_ID1"></property>
  <bag name="Table2" where="I_ID2 = 12">
    <key column="I_ID1" property-ref="Table2Id1"></key>
    <one-to-many class="Table2"/>
  </bag>
</class>

Также мне пришлось изменить тип свойства Table2 на IList, но, думаю, я мог бы использовать личное свойство, чтобы объект выглядел лучше ...

1 Ответ

0 голосов
/ 01 ноября 2011

Возможно, вы должны указать это отношение как one-to-many и указать условие where в коллекции.

http://www.nhforge.org/doc/nh/en/index.html#collections-mapping

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