在此刻工作的遺留應用程序,我們正在用NHibernate取代數據訪問,因爲舊的數據訪問沒有做急切/延遲加載,系統的一部分正在做2000+以上的查詢建立關係...流利NHibernate地圖繼承類
一切都很好,除非我絕對不知道如何映射一個場景。
我們有一個「移位」和「MultiResourceShift」
public class Shift
{
public int Id { get; protected set; }
public string EmployeeName { get; set; }
public IEnumerable Breaks { get; set; }
...
}
在otherhand多的資源位移,是一個有效的Shift鍵,可以給它分配多個員工。
public MultiResourceShift : Shift
{
public IEnumerable Employees { get; set; }
public bool IsMultiResource { get; set; }
}
數據庫結構被映射爲一對許多這樣的:
+--------------------+ | Shift | +--------------------+ | ShiftId | | EmployeeName | | IsMultiResource | | ... | +--------------------+ +--------------------+ | MultiResourceShift | +--------------------+ | MultiResourceId | | ShiftId | | EmployeeId | | ... | +--------------------+
理想地,這需要查詢,其中結果返回位移,或MultiResourceShifts的集合。
目前,這是通過遍歷閱讀器實現的,如果它是一個Shift,它被映射並添加到集合中,如果它是一個多資源,MultiResourceShift的一個實例被創建並從移位數據中彈出,員工被加載,然後它被添加到集合中。
任何人都知道這是否可能,我將如何映射並查詢它。