NHibernate поддерживает функцию под названием property-ref
. Здесь задокументировано: 5.1.10. many-to-one. Некоторый экстракт:
Атрибут property-ref
должен использоваться только для отображения устаревших данных , где внешний ключ ссылается на уникальный ключ соответствующей таблицы , кроме первичного ключа. Это уродливая реляционная модель. Например, для класса класс продукта имеет уникальный серийный номер, то есть не первичный ключ. (Единственный атрибут управляет поколением NHibernate в DDL с инструментом SchemaExport.)
Таким образом, если ребенок таблица содержит, например Guid
, который является таким же, как в мишени родительских таблицы ... это может решить проблему. Пример отображения:
<many-to-one name="Parent" property-ref="ParentGuid" column="THE_GUID_COLUMN"/>
Использование свободно синтаксис, это может выглядеть следующим образом:
References(x => x.Parent)
...
.PropertyRef("ParentGuid")
.Column("THE_GUID_COLUMN");
Во всяком случае, это не идеально и должны использоваться в основном для решения унаследованных вещей.
Что такое атрибут атрибута 'property-ref' в сопоставлении по коду? – dbardakov
Насколько я знаю из этого источника: http://notherdev.blogspot.cz/2012/01/mapping-by-code-manytoone.html * «К настоящему времени нет возможности сопоставить две функции, полезные для устаревших несогласованных баз данных - свойство-ref и не найдено. Может быть, Фабио решил, что устаревшие базы данных не будут сопоставлены с новыми сопоставлениями? »* –
Я прочитал это после вашего ответа и надеялся, что с этого момента ситуация изменится. – dbardakov