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>
...
...