2

假设我有一个包含以下 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");
    }
}
4

1 回答 1

1

尝试使用单列名称查看Fluent NHibernate 和复合 ID 我认为您所追求的是“.KeyReference()”属性。上面的链接使用的是旧版本的 FNH,但您需要关心的只是方法名称略有不同。该文章的所有其余部分都应该对您有所帮助。

让我知道你怎么去。

于 2010-03-01T23:17:08.657 回答