在.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);
}
}
但我无法弄清楚如何在Tyranosaur SubclassMap中指定复合键。 NHibernate问题跟踪器上的一个问题表明这已在1.0 RTM版本中修复(我使用的是1.0.0.593)
答案 0 :(得分:4)
找到答案 - 您需要多次调用.KeyColumn方法来添加列 - 也许.AddKeyColumn可能是一个更好的名称......?