代码之家  ›  专栏  ›  技术社区  ›  Matt

具有复合主键/外键的每个实体映射的Fluent NHibernate表

  •  0
  • Matt  · 技术社区  · 16 年前

    在.hbm.xml中,我所追求的映射将如下所示-知道如何用Fluent nhibernate重现这个吗…?

        <class name="Dinosaur" table="Dinosaur" >
        <composite-id>
            <key-property name="Id" column="Id"/>
            <key-property name="Period" column="Period"/>
        </composite-id>
        <property name="DinosaurType" column="DinosaurType"  /> 
    <joined-subclass name="Tyranosaur" table="Tyranosaur">
        <key>
            <column name="DinosaurId"/>
            <column name="DinosaurPeriod"/>
        </key>
        <property name="NumberOfTeeth">
            <column name="NumberOfTeeth">
            </column>
        </property>
    </joined-subclass>
    

    目前我有

    public class DinosaurMap : ClassMap<Dinosaur>
    {
        public DinosaurMap()
        {
        Table("Dinosaur");
        CompositeId()
            .KeyProperty(x => x.Id, "Id")
            .KeyProperty(x => x.Period, "Period")
        ;
        Map(x=>x.DinosaurType)
        ;
        }
    }
    public class TyranosaurMap : SubclassMap<Tyranosaur>
    {
        public TyranosaurMap() 
        {
            Map(x=>x.NumberOfTeeth);
        }
    }
    

    但我不知道如何在暴龙子类映射中指定复合键。NHibernate问题跟踪程序上的一个问题表明,这已在1.0 RTM构建中修复(我使用的是1.0.0.593)

    1 回复  |  直到 13 年前
        1
  •  4
  •   Matt    16 年前

    找到了答案-您需要多次调用.keycolumn方法来添加列-也许.add keycolumn是更好的名称…?