私にはユーザーがいて、そのうちの何人かは従業員です。これは 1 対 1 の関係であり、すべてのユーザーが従業員であるとは限りません。
ユーザーを取得すると、従業員情報が返されないようで、null としてマークされているだけです。nhibernate については理解できたと思いますが、マッピング ファイルで非常に多くのプロパティを試してみましたが、うまくいきませんでした。私が間違っていることについてのアイデアや指針はありますか?
ユーザー クラス:
public class User
{
public virtual int UserID { get; set; }
public virtual string Username { get; set; }
public virtual string Title { get; set; }
public virtual string Forename { get; set; }
public virtual string Surname { get; set; }
public virtual Employee Employee { get; set; }
}
ユーザー マッピング:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="Portal.Core"
namespace="Portal.Core.Data.Database">
<class name="User" table="[Users]">
<id name="UserID">
<generator class="identity" />
</id>
<property name="Username" not-null="true" length="50" />
<property name="Title" length="10" />
<property name="Forename" length="50" />
<property name="Surname" length="50" />
<one-to-one name="Employee" class="Employee" fetch="select" lazy="false" foreign-key="EmployeeID" />
</class>
</hibernate-mapping>
従業員クラス:
public class Employee
{
public virtual int EmployeeID { get; set; }
public virtual string RoomNumber { get; set; }
public virtual string JobTitle { get; set; }
public virtual User User { get; set; }
}
従業員のマッピング:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="Portal.Core"
namespace="Portal.Core.Data.Database">
<class name="Employee" table="[Employees]">
<id name="EmployeeID">
<generator class="identity" />
</id>
<many-to-one name="User" unique="true" column="UserID" class="User" fetch="select" foreign-key="UserID" ></many-to-one>
<property name="RoomNumber" length="20" />
<property name="JobTitle" length="20" />
</class>
</hibernate-mapping>