2012-01-18 34 views
0

考慮下面的類層次結構:表上鑑別和子類性質

public abstract class Animal {} 

public class Dog : Animal 
{ 
    public int DogTagNumber { get; set; } 
} 

public class Cat : Animal 
{ 
    public int CatTagNumber { get; set; } 
} 

注:DogTagNumber和CatTagNumber故意放置在子類中,而不是作爲TagNumber動物類證明財產明確到每個子類。

問題: 使用流利NHibernate的,是有可能映射階級鑑別獨特的約束與子類的明確性質在一起,象下面這樣:

獨特的(「狗」,DogTagNumber)以及獨特的(「CAT」 ,CatTagNumber)

目的是確保每個Dog和Cat關於數據庫級別表中的鑑別器的唯一性。

在此先感謝。

+0

解決,見[SO Q1](http://stackoverflow.com/questions/4041365/multiple-unique-keys-in-nhibernate),[SO Q2]( http://stackoverflow.com/questions/834565/how-to-create-a-multi-column-index-or-unique-constraint-with-nhibernate) – 1156140

回答

0

嘗試this之一:

Map(x => x.Something).UniqueKey("KeyName"); 
    DiscriminateSubClassesOnColumn("discr_column").UniqueKey("KeyName"); 
+0

我實際上遇到過,並且產生獨特(「 discr_column「,DogTagNumber,CatTagNumber)而不是所需的唯一(」discr_column「,DogTagNumber)和唯一(」discr_column「,CatTagNumber)。 – 1156140