nhibernate hasmany, когда не используется внешний ключ
-
05-07-2019 - |
Вопрос
Допустим, у меня есть таблица запросов, которая выглядит следующим образом:
RequestId INT
ReferenceNumber VARCHAR
Каждый запрос заносится в таблицу запроса. Между таблицами нет внешних ключей:
RequestLogId INT
ReferenceNumber VARCHAR
Content VARCHAR
Журнал запросов содержит содержимое запроса, и этот контент необходимо хранить в течение определенного периода времени. Запрос может быть удален, но журнал может быть удален только через некоторое время.
Как я могу сопоставить свой объект запроса, чтобы он мог содержать список запросов, основанный на номере ссылки?
Я попробовал это:
Table("InsuranceRequest");
Id(i => i.Id).Column("InsuranceRequestId");
Map(i => i.ReferenceNumber);
HasMany(i => i.InsuranceRequestLog).KeyColumn("RefenceNumber").LazyLoad.Cascade.None();
Это не работает, хотя. Это сопоставление пытается сопоставить ссылочный номер с RequestLogId requestlog. Есть ли способ указать, что в столбце присоединения должен быть ссылочный номер журнала страховых запросов?
Решение
ничто не мешает многим многим в вашей структуре таблицы .. Я рекомендую изменить структуру и сделать их внешними ключами, и я уверен, что отображение многих ко многим будет работать для вас, если отображение не работает после изменения структуры.
еще один совет для вас: возьми пустую БД и попробуй выставить схему .. чем вы сможете увидеть, как nhibernate думает, что структура должна выглядеть