每个层次结构表 - 每个子类的唯一ID

时间:2013-08-26 19:03:59

标签: nhibernate nhibernate-mapping

http://notherdev.blogspot.com/2012/01/mapping-by-code-inheritance.html

为例

我有一个基类派对和两个具体的类(公司,人)

我想使用Table Per Hierachy(单表),但我的ID只是每种具体类型都是唯一的。

即。公司和个人可能具有匹配的Id

有没有办法在Id中包含鉴别器值作为复合ID? 但仍然可以调用Get<>(id)?

1 个答案:

答案 0 :(得分:0)

这个怎么样(流利):

public class PartyMap : ClassMap<Party>
{      
    public PartyMap()
    {
          Table("Parties");             
          CompositeId<CompositeIdType>(x => x.Id)
            .KeyProperty(x => x.IdCompositePart)
            .KeyProperty(x => x.Discriminator);
          DiscriminateSubClassesOnColumn("Discriminator");
    }
}