I'm trying to map the Northwind Employee entity with NHibernate:
public class Employee
{
public virtual int ObjectID { get; set; }
public virtual string LastName { get; set; }
public virtual string FirstName { get; set; }
public virtual string Title { get; set; }
public virtual string TitleOfCourtesy { get; set; }
public virtual DateTime HireDate { get; set; }
public virtual DateTime BirthDate { get; set; }
public virtual string Address { get; set; }
public virtual string City { get; set; }
public virtual string Region { get; set; }
public virtual string PostalCode { get; set; }
public virtual string Country { get; set; }
public virtual string HomePhone { get; set; }
public virtual string Extension { get; set; }
public virtual byte[] Photo { get; set; }
public virtual string Notes { get; set; }
public virtual string PhotoPath { get; set; }
public virtual ISet<Employee> Subordinates { get; set; }
public virtual Employee ReportsTo { get; set; }
}
mapping:
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
auto-import="true" namespace="NHibernateTests.Data" assembly="NHibernateTests">
<class name="Employee" lazy="false" entity-name="Employees">
<id name="ObjectID" access="property" column="EmployeeID" >
<generator class="native" />
</id>
<property name="LastName" access="property" column="LastName"/>
<property name="FirstName" access="property" column="FirstName"/>
<property name="Title" access="property" column="Title"/>
<property name="TitleOfCourtesy" access="property" column="TitleOfCourtesy"/>
<property name="BirthDate" access="property" column="BirthDate"/>
<property name="HireDate" access="property" column="HireDate"/>
<property name="Address" access="property" column="Address"/>
<property name="City" access="property" column="City"/>
<property name="Region" access="property" column="Region"/>
<property name="PostalCode" access="property" column="PostalCode"/>
<property name="Country" access="property" column="Country"/>
<property name="HomePhone" access="property" column="HomePhone"/>
<property name="Extension" access="property" column="Extension"/>
<property name="Photo" access="property" column="Photo"/>
<property name="Notes" access="property" column="Country"/>
<property name="PhotoPath" access="property" column="PhotoPath"/>
<set name="Subordinates" table="Employees" access="property" lazy="false" inverse="true">
<key column="ReportsTo"/>
<one-to-many class="Employee" />
</set>
<many-to-one name="ReportsTo" column="ReportsTo" access="property" not-null="false"/>
</class>
</hibernate-mapping>
I keep getting "Association references unmapped class: NHibernateTests.Data.Employee" MappingException.
It works fine with self-association parts (Subordinates and ReportsTo) commented out.
What's wrong with my mapping?
Best Answer
Sometimes, the above error occurs when we ddo not set properties for the particular
HBM
file. So, go to yourhbm
file properties and select theI have tested this scenario, wpf with Nhibernate environment.