如何在HasManyToMany-NHibernate关系上实施唯一约束?

如何在HasManyToMany-NHibernate关系上实施唯一约束?,nhibernate,fluent-nhibernate,nhibernate-mapping,Nhibernate,Fluent Nhibernate,Nhibernate Mapping,假设我有产品和类别,并且每个产品都可以存在于多个类别中,如何防止在我的数据库中出现类似的情况?我是否必须将其编码到我的域层,或者NHibernate可以处理它 我不想要的 表:产品类别 ProductId CategoryId --------- ---------- 12 23 12 24 12 23 12 23 ProductId CategoryId --------- ---------- 12 2

假设我有产品和类别,并且每个产品都可以存在于多个类别中,如何防止在我的数据库中出现类似的情况?我是否必须将其编码到我的域层,或者NHibernate可以处理它

我不想要的

表:产品类别

ProductId  CategoryId
---------  ----------
12         23
12         24
12         23
12         23
ProductId  CategoryId
---------  ----------
12         23
12         24
我想要什么

表:产品类别

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

您需要通过覆盖对象上的等于并使用集合的集合映射将其编码到域层中。这将防止集合包含重复项。还应向数据库表添加唯一约束。如果您使用NHibernate生成模式,那么它可以生成唯一约束,但我没有;我没有给你举个例子