Каков наилучший способ использования NHibernate для отображения ограниченных отношений «многие ко многим»? - PullRequest
1 голос
/ 31 июля 2011

У меня есть две сущности, представленные двумя таблицами в базе данных, соединенные таблицей ссылок с уникальным ограничением на каждый из двух внешних ключей. (См. Этот вопрос для деталей). Таблица связей допускает взаимосвязь «многие ко многим», но уникальное ограничение гарантирует, что на практике существует только отношение «один к одному».

Хорошая аналогия с проблемой - автомобили и парковочные места. Здесь много машин и много мест. Пространство может содержать одну машину или быть пустым; автомобиль может находиться только в одном месте за раз или без места (не припаркован).

У нас есть таблица Cars, таблица Spaces и таблица ссылок, называемая Parking. Вот таблица ссылок:

create table parking (
  car_id references car,
  space_id references space,
  unique car_id,
  unique space_id
);

Есть ли способ отобразить это отношение в NHibernate так, чтобы каждый объект содержал одно свойство, представляющее связанный объект, а не коллекцию?

1 Ответ

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

можно вот так

class Car
{
    public Space Space { get; set; }
}

public CarMap()
{
    Join("parking", join =>
    {
        join.KeyColumn("car_id");
        join.References(car => car.Space, "space_id");
    });
}

в хбм что-то вместе:

<class name="car">

  <join table="parking">
     <many-to-one name="Space" column="space_id"/>
  </join>
</class>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...