Как применить уникальное ограничение для отношения HasManyToMany NHibernate? - PullRequest
1 голос
/ 06 декабря 2010

Предполагая, что у меня есть продукты и категории, и каждый продукт может существовать более чем в одной категории, как мне предотвратить появление в моей базе данных чего-то подобного? Нужно ли мне кодировать его в моем доменном слое или NHibernate справится с этим?

Чего я не хочу

Таблица: ПродуктыКатегории

ProductId  CategoryId
---------  ----------
12         23
12         24
12         23
12         23

Что я хочу

Таблица: ПродуктыКатегории

ProductId  CategoryId
---------  ----------
12         23
12         24

1 Ответ

2 голосов
/ 06 декабря 2010

Вам необходимо закодировать его в свой доменный слой, переопределив Equals на объектах и ​​используя сопоставление наборов для коллекций.Это предотвратит дубликаты коллекций.Вы также должны добавить уникальное ограничение к таблице базы данных.NHibernate может генерировать уникальное ограничение, если вы используете его для генерации схемы, но у меня нет примера для вас.

...