HasMany с PropertyRef работает для класса с Id (), но не CompositeId () - PullRequest
0 голосов
/ 11 июля 2019

Я пытался ссылаться на список дочерних сущностей из родительской сущности, которая имеет составной идентификатор, указывая другой ключ соединения с помощью 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.

Цените любые указатели!

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