nhibernate hasmany, когда не используется внешний ключ - PullRequest
0 голосов
/ 27 ноября 2009

Допустим, у меня есть таблица запросов, которая выглядит следующим образом:

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. Есть ли способ указать, что в столбце присоединения должен быть ссылочный номер журнала страховых запросов?

1 Ответ

0 голосов
/ 27 ноября 2009

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

еще один совет для вас: возьми пустую БД и попробуй выставить схему .. чем вы сможете увидеть, как nhibernate думает, что структура должна выглядеть

...