Есть ли способ сопоставить отношение «многие ко многим» со свойствами каждого элемента в списке, относящемся к этому отношению? Фактический случай, который я пытаюсь раскрыть, таков:
Бизнес может быть связан со многими контактами, а контакт может быть связан со многими бизнесами. То, что я хочу сделать, это предоставить статус для отношений, например, активные или удаленные, а также дату, когда контакт был приглашен (или добавлен) в качестве контакта для этой компании. Так, скажем, контакт может быть активным для одного бизнеса, но в ожидании другого бизнеса.
Я знаю, что могу легко добиться этого, просто превратив отношение в реальную сущность и сопоставив сущность ассоциации с коллекциями, но я ДЕЙСТВИТЕЛЬНО ненавижу это делать. Просто кажется грязным, превращая что-то вроде отношений в настоящую сущность. Что мне интересно, так это то, есть ли способ сопоставить определенные свойства отношения каждому объекту. Итак, скажем, у меня есть список контактов для бизнеса. Каждый контакт в этом списке будет иметь статус, но при сопоставлении он будет делать этот статус специфичным для бизнеса. Я надеялся, что смогу сделать что-то подобное в бизнес-картографии:
<bag name="Contacts" table="BusinessContactAssociations" lazy="true" cascade="all">
<key column="BusinessID"/>
<many-to-many class="Contact" column="ContactID">
<join table="BusinessContactAssociations">
<key column="ContactID"/>
<property name="InvitedDate"/>
<property name="Status"/>
</join>
</many-to-many>
</bag>
но, конечно, это не работает, потому что объединение не может быть использовано во многих ко многим, но оно иллюстрирует то, что я хочу.
У кого-нибудь есть какая-нибудь полезная магия мафиозного картографирования для меня?