Беглое отображение таблицы на сущность в Nhibernate с использованием составных первичных / внешних ключей - PullRequest
0 голосов
/ 13 апреля 2010

В .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 Ответ

4 голосов
/ 14 апреля 2010

Найден ответ - вам нужно сделать несколько вызовов метода .KeyColumn, чтобы добавить столбцы - возможно, .AddKeyColumn было бы лучшим именем для него ...?

...