假设我有一个包含以下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");
}
}
答案 0 :(得分:1)
试着看Fluent NHibernate and composite ID with single column name 我认为你所追求的是“.KeyReference()”属性。 上面的链接使用旧版本的FNH,但您需要关注的是,关于您的问题,方法名称略有不同。该文章的其余部分应该对您有所帮助。
让我知道你怎么走。