Хорошо, не спрашивайте почему, но у нас есть требование для следующей структуры категорий:
- Коллекция системных корневых категорий (для них мы используем перечисление)
- Набор пользовательских подкатегорий, каждая с внешним ключом идентификатора корневой категории
- Набор системных подкатегорий
Итак,это выглядит примерно так:
Sys-определенная корневая категория -> пользовательская подкатегория -> sys-определенная конечная категория -> item
Нам нужно загрузить предопределенныйкатегории на основе корневой категории подкатегории.Например, если бы у нас было:
Транспортные средства -> My Mondeo -> [Wheels, Stereo, Dashboard]
Пользовательский подкат «My Mondeo» будет выбирать дочерние категории на основев его корневой категории (Транспортные средства).
Таким образом, у нас происходит обратное отношение многих ко многим:
rootCats --1---------0..*-- user-defined cats
| |
1 0..n
| |
| |
| |
0..* |
| |
pre-defined cats--1------------------
Я попытался сопоставить это в nhibernate со следующими:
<set name="PreDefinedSubCategories" lazy="false" cascade="none" mutable="false">
<key column="vaultCategoryId" property-ref="Category" />
<one-to-many class="PreDefinedVaultCategory" />
</set>
Однако атрибут property-ref устарел и в любом случае выдает ошибку «коллекция не связана ни с одним сеансом».
Кто-нибудь реализовал что-то подобное с помощью nhibernate.Если так, есть ли хороший способ сделать это, или я должен просто определить метод, чтобы фильтровать ВСЕ листовые кошки после того, как они загрузились?