Fluent Nhibernate组合实体,指定父键

Fluent Nhibernate组合实体,指定父键,nhibernate,fluent-nhibernate,nhibernate-mapping,Nhibernate,Fluent Nhibernate,Nhibernate Mapping,在中,我被热回答为从表的主键映射一个组合实体。 因此: public UserMap() { WithTable("aspnet_Users"); Id(x => x.Id, "UserId") .GeneratedBy.Guid(); Map(x => x.Name, "UserName"); Map(x => x.Login, "LoweredUserNam

在中,我被热回答为从表的主键映射一个组合实体。 因此:

public UserMap()
{
    WithTable("aspnet_Users");
    Id(x => x.Id, "UserId")
        .GeneratedBy.Guid();
    Map(x => x.Name, "UserName");
    Map(x => x.Login, "LoweredUserName");
    WithTable("LdapUsers", m => {
          m.Map(x => x.FullName, "FullName");
          m.WithKeyColumn("UserId");
    });
}
如果在“LdapUser”和“aspnet_Users”中有一个名为“UserId”的列,则所有操作都有效


如果我想同时指定外键表的列名和主表中键的列名,因为这不是pk,所以请使用另一列进行联接,该怎么办?

看来NHibernate中目前根本不支持这一点。在NHibernate的JIRA上有一个。事实上,我认为这是为收集,但可能也适用于你正在做的事情。想法是在
元素上添加一个
property ref
属性,该属性指向要引用的属性,而不是主键

据推测,NHibernate2.1.0的Alpha2版本中已经有了这一更改。当然,可能是在NH2.1发布之后的某个时候,才会将其添加到FNH中。如果可以,我建议您掌握Alpha2版本,并根据您的情况进行尝试。如果它不适用于您的组合实体,只适用于集合,那么您可能希望提交另一个关于JIRA的问题,以便也添加它