FluentNhibernate加入班

FluentNhibernate加入班,nhibernate,fluent-nhibernate,Nhibernate,Fluent Nhibernate,使用表定义: Employee EmployeeId Primary Key LastName FirstName EmployeeAddress EmployeeAddressId EmployeeId Address City 和类的定义 public class Employee { public int EmployeeId {get; set;} public string LastN

使用表定义:

Employee
     EmployeeId Primary Key
     LastName
     FirstName

EmployeeAddress
     EmployeeAddressId    
     EmployeeId
     Address
     City
和类的定义

public class Employee
{
     public int EmployeeId {get; set;}
     public string LastName {get; set;}
     public string FirstName {get; set;}

     public EmployeeAddress EmployeeAddress {get; set;}
}
应该使用什么类型的映射来填充Employee.EmployeeAddress。我的第一次尝试是

Reference(x=>x.EmployeeAddress).Column("EmployeeId")
将生成连接作为

Employee.EmployeeId = EmployeeAddress.EmployeeAddressId
我可以用Join来做吗?差不多

Join("EmployeeAddress", join => join.Map(x => x.EmployeeAddress).  

这在调用configure时生成错误。似乎我只能对单个属性使用Join,而不能对类使用Join。如果我在Employee类中为Address和City添加属性,然后映射这些属性,我就可以加入工作,但我想将其映射为一个类而不是每个属性。

我不知道流畅的语法(对于
一对一
它是
一对一
和对于
多对一
它是
引用
),但这就是结果XML:

<class name="Employee">
  <id name="EmployeeId">
    <generator class="..." />
  </id>
  <property name="FirstName" />
  ...
  <one-to-one name="EmployeeAddress" cascade="all" property-ref="Employee" />
</class>
<class name="EmployeeAddress">
  <id name="EmployeeAddressId">
    <generator class="..." />
  </id>
  <property name="Address" />
  ...
  <many-to-one name="Employee" column="EmployeeId" unique="true" cascade="all" />
</class>

...
...