Имеет устаревшую базу данных с структурами табличных таблиц, такими как следующее. Я пытаюсь понять, как плавно отображать этот тип отношений.Fluent nHibernate Mapping with Ternary Mapping Table
Существует несколько родительских таблиц, которые используют таблицу сопоставления для хранения заметок.
родительские таблицы, выглядеть следующим образом: Таблица
P1
ID iSomething
P2 Таблица
ID iSomethingElse
Существует таблица отображения, которая будет принимать родительскую таблицу и сопоставьте его с таблицей заметок.
Картирования Таблицы
ID i_RecordUniqueID
ID i_NoteID
ID i_RecordID
В столбце i_RecordID содержит числовое значение, показывающее, какой родитель таблицу значения i_RecordUniqueID пришло. Таблица отображения содержит только три столбца и является тройным первичным ключом.
Вот примечание таблица:
Примечание Таблица
ID i_NoteID
Запрос найти ноты табличной P1 выглядит следующим образом:
Select n.*
from P1 p
inner join Mapping m on p.iSomething = m.i_RecordUniqueID and m.i_RecordID = 1
inner join Note n on m.i_NoteID = n.i_NoteID
запрос, чтобы найти заметки табличной P2 является следующим образом:
Select n.*
from P2 p
inner join Mapping m on p.iSomething = m.i_RecordUniqueID and m.i_RecordID = 2
inner join Note n on m.i_NoteID = n.i_NoteID
В файле сопоставления таблиц родительских я имею ассоциацию, как показано ниже. Я не знаю, как добавить ограничение i_RecordID.
HasManyToMany<Note>(x => x.Notes)
.Table("Mapping")
.ParentKeyColumn("i_RecordUniqueID")
.ChildKeyColumn("i_NoteID")
.Cascade.All();