2

次の3つのテーブルを持つ既存のデータベースがあるとします。

表1:
(PK)T1ID1
(PK)T1ID2

表2 :
(PK)T2ID1

表3:
(FK)T1ID1
(FK)T1ID2
(FK)T2ID1(3つのキーは上の表からのものです)

私の質問は、Table3をFluent NHibernateでマッピングするにはどうすればよいですか?
私が混乱しているのは、その複合キーが2つの異なるテーブルからのものであるという事実をどうするかです。

表1と表2のマッピングには次のものがあります。

public class Table1
{
    public virtual long T1ID1 { get; set; }
    public virtual long T1ID2 { get; set; }
}

public class Table2
{
    public virtual long T2ID1 { get; set; }
}

public class Table1Map
{
    public Table1Map()
    {
        Table("Table1");

        CompositeId()
            .KeyProperty(x => x.T1ID1, "T1ID1")
            .KeyProperty(x => x.T1ID2, "T1ID2");
    }
}

public class Table2Map
{
    public Table2Map()
    {
        Table("Table2");

        Id(x => x.T2ID1, "T2ID1");
    }
}
4

1 に答える 1

1

Fluent NHibernateと単一列名の複合IDを見てみて ください。あなたが求めているのは、「。KeyReference()」プロパティだと思います。上記のリンクは古いバージョンのFNHを使用していますが、問題に関して気にする必要があるのは、メソッド名がわずかに異なることだけです。その記事の残りのすべてがあなたを助けるはずです。

どうやって行くのか教えてください。

于 2010-03-01T23:17:08.657 に答える