Fluent NHibernate从继承的复合ID映射复合ID

时间:2009-11-09 22:15:12

标签: inheritance fluent-nhibernate nhibernate-mapping composite-key composite-id

假设我有一个包含以下3个表的现有数据库:

表1:
(PK)T1ID1
(PK)T1ID2

表2:
(PK)T2ID1

表3:
(FK)T1ID1
(FK)T1ID2
(FK)T2ID1 (3个键来自上表)

我的问题是:如何使用Fluent NHibernate映射Table3?
令我困惑的是,如何处理它的复合键来自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");
    }
}

1 个答案:

答案 0 :(得分:1)

试着看Fluent NHibernate and composite ID with single column name 我认为你所追求的是“.KeyReference()”属性。 上面的链接使用旧版本的FNH,但您需要关注的是,关于您的问题,方法名称略有不同。该文章的其余部分应该对您有所帮助。

让我知道你怎么走。