流畅的NHibernate - 将2个表映射到一个类

时间:2010-01-05 15:21:07

标签: fluent-nhibernate

我有两个表要映射到一个看起来像这样的类:

CUSTOMER_INFO_CLASS.cs
----------------------
Id (CUSTOMER table) 
CustomerName (CUSTOMER table)
CustomerTypeDesc (CUSTOMER_TYPE table)

我尝试使用join进行操作,如下所示:

Table("CUSTOMER");

Id(x => x.ID).Length(10).Column("CustomerId");
Map(x => x.CustomerName);

Join("CUSTOMER_TYPE", m =>
    {
    m.Optional();
    m.Map(x => x.CustomerTypeDesc);
    m.KeyColumn("CustomerType");
    });

问题是我尝试链接这两个表的字段不是其中任何一个的主键。 (默认情况下,由定义为ID的字段完成的连接) 所以我发现对于CUSTOMER_TYPE表我可以通过“KeyColumn”定义字段 如何定义CUSTOMER表中的相关列将是CustomerTypeCode而不是CustomerId? (如果我可以的话)

最后,sql查询应如下所示:

Select Id, CustomerName, CustomerAddress, CustomerTypeDesc
From CUSTOMER t1
  Left join CUSTOMER_TYPE t2
    On t1.CustomerTypeCode = t2.CustomerType

1 个答案:

答案 0 :(得分:0)

如果Customer表将CustomerType成员映射到CustomerType表的主键,则Hibernate应自动为您执行连接。

是否有原因导致CustomerType未通过正常的外键引用链接?