Нестандартные отношения «многие ко многим» в NHibernate - PullRequest
0 голосов
/ 10 июля 2011

У меня есть две таблицы (Правило и Объект), связанные через отношение многие ко многим. Правило может быть связано с любым количеством объектов или со всеми объектами.

Я бы обычно строил эту ассоциацию с таблицей ссылок, где столбец Object_ID был бы установлен в NULL, если связанное Правило было связано со всеми Объектами. Подойдет любое значение, которое не будет ссылаться на реальный объект.

Таким образом, я мог бы написать Select, чтобы найти все Правила, связанные с объектом, подобным этому:

SELECT * FROM Rule JOIN RuleObject_Link on Rule.ID = RuleObject_Link.RuleID WHERE RuleObject_Link.ObjectID = <the object ID> or RuleObject_Link.ObjectID IS NULL

Проблема в том, что я использую NHibernate. Я не могу найти способ обозначить «все объекты» в автоматизированной структуре отношений / коллекции.

Можно ли построить подобные отношения, используя отношение "многие ко многим" в NHibernate?

Или мне придется вручную настроить таблицу ссылок и обработать соединение самостоятельно?

1 Ответ

0 голосов
/ 10 июля 2011

Было бы лучше добавить отдельное логическое поле к Rule, означающее, что оно применяется универсально ко всем Object объектам (кстати, Object довольно плохое имя класса).

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

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