2012-06-21 1 views
2

Боюсь, я, возможно, задаю глупый вопрос, но мой google-fu, кажется, страдает. Большинство поддержки РСУБД создают внешний ключ, ссылающийся на уникальный ключ в другой таблице, который не является первичным ключом, но я не могу найти «как» для этого для NHibernate. Я предполагаю, что все считают, что это глупо.Поддерживает ли NHibernate ссылки на уникальные столбцы, которые не являются первичным ключом?

Поддерживается ли это? Есть ли какие-либо оговорки? Каким будет отображение XML для этого?

ответ

3

Если я понимаю, а ваш вопрос, property-ref является то, что вы ищете

От NHibernate документации (5.1.12. Many-to-one)

свойство-ссылка (необязательно): имя имущества ассоциированного класс, который соединен с этим внешним ключом. Если не указано, используется первичный ключ связанного класса.

Я лично не знаю никаких оговорок, но Ayende Rahien, действительный член команды разработчиков NHibernate, настоятельно рекомендуем избегать этого, если это возможно. Он не говорит, почему, возможно, только потому, что является уродливым :)

+0

doc перечисляет одно предупреждение. Атрибут property-ref должен использоваться только для отображения устаревших данных, где внешний ключ относится к уникальному ключу ассоциированного таблицу, отличную от первичного ключа. – dotjoe

+0

@dotjoe: хорошая точка, но OP утверждает, что поле уникально для этого случая. –