C# 从两个表映射字段以创建单个实体

C# 从两个表映射字段以创建单个实体,c#,nhibernate,fluent-nhibernate,nhibernate-mapping,C#,Nhibernate,Fluent Nhibernate,Nhibernate Mapping,我正在开发一项功能,为我们的每个客户添加为他们的帐户定义自定义注册表单的功能,我在为其中一个对象创建Fluent NHibernate映射时遇到了一些障碍 有两个表涉及[RegistrationField]和[AccountRegistrationField]。[RegistrationField]包含可供选择的所有字段的静态列表,以及有关如何呈现字段的一些信息,例如,是否为文本框、选择框或复选框。[AccountRegistrationField]包含为每个帐户选择的字段以及有关这些字段的任何

我正在开发一项功能,为我们的每个客户添加为他们的帐户定义自定义注册表单的功能,我在为其中一个对象创建Fluent NHibernate映射时遇到了一些障碍

有两个表涉及[RegistrationField]和[AccountRegistrationField]。[RegistrationField]包含可供选择的所有字段的静态列表,以及有关如何呈现字段的一些信息,例如,是否为文本框、选择框或复选框。[AccountRegistrationField]包含为每个帐户选择的字段以及有关这些字段的任何帐户特定信息。此表存储字段的显示顺序、字段的默认值(如果已选择)以及字段的标签

这两个表的基本结构是:

[RegistrationField]
fieldID (PK, int, not null)
fieldName (varchar(50), not null)
fieldType (varchar(50), not null)
htmlID (varchar(50), not null)

[AccountRegistrationField]
ID (PK, int, not null)
accountID (FK, int, not null)
fieldID (FK, int, not null)
isRequired (bit, not null)
priority (int, not null)
label (varchar(50), not null)
defaultValue (varchar(50), not null)
我想做的是创建一个对象来表示[AccountRegistrationField]中的数据,但它也包含[RegistrationField]中的几个字段。对象的外观如下所示:

public class UserRegistrationField
{
    public virtual int ID { get; set; } //from AccountRegistrationField
    public virtual int AccountID { get; set; } //from AccountRegistrationField
    public virtual string DefaultValue { get; set; } //from AccountRegistrationField
    public virtual int FieldID { get; set; } //from AccountRegistrationField
    public virtual string HtmlID { get; set; } //from RegistrationField
    public virtual bool IsRequired { get; set; } //from AccountRegistrationField
    public virtual string Label { get; set; } //from AccountRegistrationField
    public virtual int Priority{ get; set; } //from AccountRegistrationField
    public virtual string FieldType { get; set; } //from RegistrationField
}
为我提供所需内容的SQL查询是:

SELECT ar.id
    ,ar.accountID
    ,ar.defaultValue
    ,ar.fieldID
    ,rf.htmlID
    ,ar.isRequired
    ,ar.label
    ,rf.fieldType
FROM AccountRegistrationFields ar
INNER JOIN RegistrationFields rf ON rf.fieldID = ar.fieldID
WHERE ar.accountID = @AccountID
ORDER BY ar.priority
但我真的不知道如何使用Fluent NHibernate绘制这个图,从而得到相同的结果

您知道如何在不必将[RegistrationField]中需要的值存储在[AccountRegistrationField]中的情况下实现这一点吗?

您可以使用它来实现这一点


我使用XML,但等效的Fluent方法可能称为Join。

Join方法有效,但我必须搜索一点来找出Fluent中的正确语法。