我遇到映射問題。流利Nhibernate映射兩個數據庫表上的單個類
我在我的數據庫中的兩個表如下:員工和EmployeeManagers
員工
僱員INT 名稱爲nvarchar
EmployeeManagers
EmployeeIdFk INT ManagerIdFk INT
所以該員工可以有0個或更多個管理RS。經理本身也是一名員工。
我有下面的類來表示
public class Employee
{
public virtual int Id
{
get;
set;
}
public virtual string Name
{
get;
set;
}
public virtual IList<Employee> Managers
{
get;
protected set;
}
public Employee()
{
Managers = new List<Employee>();
}
}
我沒有任何類來表示Manager,因爲我覺得沒有必要爲它的員工和管理者,作爲經理本身是員工。
我正在使用autoMapping,我只是無法弄清楚如何映射這個類到這兩個表。我正在實施IAutoMappingOverride以覆蓋Employee的自動映射,但我不確定要在其中執行什麼操作。
public class NodeMap : IAutoMappingOverride
{
public void Override(AutoMapping<Node> mapping)
{
//mapping.HasMany(x => x.ValidParents).Cascade.All().Table("EmployeeManager");
//mapping.HasManyToMany(x => x.ValidParents).Cascade.All().Table("EmployeeManager");
}
}
我還想確保員工不能分配兩次相同的管理員。這是我可以在我的應用程序中驗證的,但我想對EmployeeManager表(例如組合鍵)施加約束,以便同一個經理不能多次分配給一個員工。
任何人都可以幫助我嗎?
等待 納比爾
自動映射現在支持自referecing 。 – nabeelfarid 2010-06-22 22:19:27
史詩!感謝您的更新 – dbones 2010-06-23 08:47:32