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