2012-01-18 33 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