我在NHibernate中遇到了一对一的关系问题。是我的对象的结构如下:NHibernate - 一对一的关系
public partial class PersonDataContext
{
protected int _personid;
protected string _name;
protected EmployeeDataContext _employee;
}
public partial class EmployeeDataContext
{
protected int _personid;
protected string _payrollno;
}
在我的模型中,每个PersonDataContext必须只包含一个EmployeeDataContext,和每一个存在EmployeeDataContext有是一个PersonDataContext的一部分。这是一种常见的一对一关系。
现在,映射:
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="PersonDataContext, DAL" table="`Person`" lazy="false">
<id name="PersonId" column="`PersonId`" type="int">
<generator class="native" />
</id>
<property type="string" name="name" column="`name`" />
<one-to-one name="Employee" cascade="save-update" class="EmployeeDataContext,DAL" />
</class>
</hibernate-mapping>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="EmployeeDataContext, DAL" table="`Employee`" lazy="false">
<id name="PersonId" column="`PersonId`">
<generator class="foreign">
<param name="property" >PersonId</param>
</generator>
</id>
<property type="string" length="30" name="PayRollNo" column="`PayRollNo`" />
</class>
</hibernate-mapping>
然后,我创建一个PersonDataContext,通过自身的EmployeeDataContext创建。然后,当我保存NHibernate引发异常,“无法解析属性:PersonId”。
请添加其他部分类。 – 2011-01-21 14:22:36