Nhibernate 表每类层次结构对鉴别器和子类属性的唯一约束

Nhibernate 表每类层次结构对鉴别器和子类属性的唯一约束,nhibernate,fluent-nhibernate,Nhibernate,Fluent Nhibernate,考虑以下类层次结构: public abstract class Animal {} public class Dog : Animal { public int DogTagNumber { get; set; } } public class Cat : Animal { public int CatTagNumber { get; set; } } 注:DogTagNumber和CatTagNumber特意放在子类中,而不是放在Animal类中的TagNumber中,

考虑以下类层次结构:

public abstract class Animal {}

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

public class Cat : Animal
{
    public int CatTagNumber { get; set; }
}
注:DogTagNumber和CatTagNumber特意放在子类中,而不是放在Animal类中的TagNumber中,以演示每个子类的显式属性

问题是: 使用Fluent NHibernate,是否可以将类鉴别器上的唯一约束与子类的显式属性一起映射,如下所示:

唯一(“狗”,狗号)和唯一(“猫”,猫号)

其目的是确保每个狗和猫在数据库级别的表中关于鉴别器的唯一性

提前感谢。

试试:


事实上,我以前也遇到过这种情况,它产生了Unique(“discr_列”,DogTagNumber,CatTagNumber),而不是所需的Unique(“discr_列,DogTagNumber”)和Unique(“discr_列,CatTagNumber)。已解决,请参阅,
   Map(x => x.Something).UniqueKey("KeyName");
   DiscriminateSubClassesOnColumn("discr_column").UniqueKey("KeyName");