2010-12-06 51 views
1

假設我有產品和類別,並且每個產品都可以存在多個類別中,我怎樣才能防止在我的數據庫中出現類似這樣的事情?我是否必須將其編碼到我的域圖層中,或者NHibernate是否可以處理它?如何在HasManyToMany NHibernate關係上強制執行一個唯一約束?

我不想

表:ProductsCategories

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

我確實想

表:ProductsCategories

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

回答

2

ÿ您需要通過覆蓋對象上的Equals和使用集合映射來將它編碼到您的域圖層中。這將防止包含重複項目的集合。您還應該爲數據庫表添加一個唯一約束。如果您將NHibernate用於模式生成,那麼NHibernate可以生成唯一的約束,但我沒有爲您提供示例。

+0

謝謝,工作。 – 2010-12-08 13:27:26