2012-02-01 66 views
0

我有一個類NHibernate。記錄的唯一

abstract class Entity<T> where T : Entity<T> 
{ 
    public virtual Guid ID { get; private set; } 
} 

我所有的實體都繼承它。如果employee實體不可能擁有兩名擁有相同passport-sn的員工以及其他身份特定的文檔。

我該如何禁止兩名員工以不同的surrogate keyspassport number加入數據庫?

映射中是否有任何約束?

謝謝!

回答

1

,你可以,如果你正在使用流利的添加唯一約束護照

mapping.Id(employee => employee.Id); 
mapping.Map(employee => employee.passport).Unique(); 

在您的域名,如果所有的實體從實體繼承了所有的人都會使用一個代理鍵讓你有以處理任何其他限制

+0

好的。據我瞭解普通的'xml'映射會得到相同的結果。所以我應該把一個屬性的約束。謝謝! – lexeme 2012-02-01 14:04:30