2016-05-25 5 views
1

У меня есть 3 таблицы: рабочая область с PK IdWorkspace и другие столбцы, язык с PK IdLanguage и другие столбцы и таблица объединений WorkspaceFooter с несколькими PK (IdWorkspace FK и IdLanguage FK) и строка экстраполяции. Деноминация. Я не могу найти способ сопоставить данные в Nhibernate, так что WORKS.NHibernate map join table with extra column

Как написать в файлах .hbm.xml? Что мне следует отображать в рабочей области? Коллекция, список WorkspaceFooter и т. Д.?

Обратите внимание, что по какой-либо причине отношения в Workspace, указывающие на WorkspaceFooter, должны быть обратными = "true". Обновление в Workspace должно принудительно обновить и в WorkspaceFooter.

Заранее спасибо.

ответ

0

Вы должны иметь четкое представление о:

  • модель класса вам нужно (на основе бизнес-логики, а не только модели базы данных)
  • ли вам действительно нужно двунаправленную связь

Вы можете:

  • Показать карту как самостоятельный объект в списке (который является решением с наибольшим требуемый код управления),
  • сопоставить его как составной элемент с наименованием и многозначным языком. Он также использует для этого определенный класс в C#. Возможно, самое прямое решение.
  • map это как карта (словарь на C#), где деноминация является ключом (учитывая, что она уникальна в пределах одной рабочей области и типичным способом доступа к языку),
  • Возможно, вы можете сопоставить ее как список и использовать фильтры для доступа только к данным определенного номинала. У меня нет опыта работы с фильтрами, и я не знаю, с какими проблемами вы столкнетесь.
+0

Благодарю вас, я изменил таблицу тем временем. – duracell