NHibernate - Как подделать одну сторону нормализации многих ко многим - PullRequest
0 голосов
/ 10 сентября 2010

У меня есть следующие две таблицы:

Package
id

ClientPackage
id
clientNumber
packageId

Дело в том, что у меня нет таблицы Client в этой базе данных (она находится в другой базе данных).Есть ли способ, которым я могу создать сопоставление клиента с моделью клиента, которая просто состоит из отдельного «clientNumber» из таблицы ClientPackage, рассматривая ClientPackage как таблицу ассоциации - это означает, что я не хочу класс или отображение для ClientPackage.Я думаю, что я мог бы использовать компонент и idbag для достижения этой цели, но я просто хотел получить более опытное мнение, чтобы я знал, что я поступаю правильно.

1 Ответ

1 голос
/ 12 сентября 2010

С точки зрения NH, это не отношение «многие ко многим», именно потому, что клиент не отображается.

Отображение зависит от того, как вы хотите, чтобы оно было представлено в модели предметной области.

Idbag отлично подойдет для отображения Package.Clients как ICollection<int>.Вам не нужен компонент:

<idbag name="Clients" table="ClientPackage">
  <collection-id column="id" type="...">
    <generator class="..."/>
  </collection-id>
  <key column="packageId"/>
  <element column="clientNumber"/>
</idbag>

И затем вы будете использовать эти идентификаторы, чтобы получить клиентов в другой базе данных.

...