Я пытался ссылаться на список дочерних сущностей из родительской сущности, которая имеет составной идентификатор, указывая другой ключ соединения с помощью PropertyRef, например так:
CompositeId().KeyProperty(x => x.Key1, "KEY_1").KeyProperty(x => x.Key2, "KEY_2").KeyProperty(x => x.Key3, "KEY_3");
Map(x => x.MappedProperty, "MAPPED_COLUMN");
HasMany(x => x.Lst).KeyColumn("MAPPED_COLUMN").PropertyRef("MappedProperty");
Отображение на дочернюю сущность представляет собой Id(x => x.MappedProperty, "MAPPED_COLUMN")
плюс еще одно свойство с Map()
, без ссылок на родительскую сущность.
И я продолжаю получать MappingException
с сообщением property not found: MappedProperty on entity Namespace.Parent
при построении моих отображений.
Это особенно раздражает, потому что я использовал такое же отображение в ряде других пар родительских / дочерних классов. После нескольких часов потраченных серых прядей волос я попытался удалить CompositeId
и заменить его обычным Id
(хотя, очевидно, это не то, как проектируется база данных), и я буду проклят, если сопоставления не сделали ' т построить без заминки !!!
Вопрос: это ожидаемое поведение? Я не понимаю, почему это должно быть так. Также не удалось найти каких-либо отчетов об этом в Интернете, и в документации, похоже, не указывается, что должны быть какие-либо конкретные проблемы с HasMany / PropertyRef и CompositeId.
Я использую v5.2.2 пакета NHibernate NuGet и v2.1.2 пакета FluentNHibernate.
Цените любые указатели!