2

映射的复合ID比方说,我有以下3代表的现有数据库:功能NHibernate从继承复合标识

表1:
(PK)T1ID1
(PK)T1ID2

表2:
(PK)T2ID1

表3:
(FK)T1ID1
(FK)T1ID2
(FK)T2ID1 (其中3项来自上面的表)

我的问题是:如何映射表3与功能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"); 
    } 
} 
+0

我有一些痛苦只是试图映射m:n与两个表复合pk。看起来并不像你的情况那么优秀。运气好的话? – 2010-02-02 10:13:46

回答

1

尝试寻找Fluent NHibernate and composite ID with single column name 我想你以后是“.KeyReference()”属性。 上面的链接使用的是旧版本的FNH,但您需要关注的是,关于您的问题,方法名称稍有不同。该文章的其余部分应该可以帮助你。

让我知道你是怎么去的。