2011-01-11 12 views
0

現時点ではレガシーアプリケーションで作業していますが、以前のデータアクセスは熱心な/怠惰な読み込みをしなかったため、NHibernateでデータアクセスを置き換えています。関係を作成してください...流暢NHibernate Map継承クラス

私は1つのシナリオをどのようにマップするか全く分かりません。

私たちは、「Shiftキー」とotherhandの「MultiResourceShift」

public class Shift 
{ 
    public int Id { get; protected set; } 
    public string EmployeeName { get; set; } 
    public IEnumerable Breaks { get; set; } 
    ... 
}

マルチリソースシフトを持っているが、効果的に割り当てられた複数の従業員を持つことができますシフト、です。

public MultiResourceShift : Shift 
{ 
    public IEnumerable Employees { get; set; } 
    public bool IsMultiResource { get; set; } 
}

データベース構造は、一対多などマッピングされている:結果はシフト、又はMultiResourceShiftsのコレクションを返す場合に理想的には、これを照会する必要が

 
+--------------------+ 
| Shift   | 
+--------------------+ 
| ShiftId   | 
| EmployeeName  | 
| IsMultiResource | 
| ...    | 
+--------------------+ 
+--------------------+ 
| MultiResourceShift | 
+--------------------+ 
| MultiResourceId | 
| ShiftId   | 
| EmployeeId   | 
| ...    | 
+--------------------+ 

これは読者の反復処理によって実現され、Shiftの場合はマップされ、コレクションに追加されます。マルチリソースの場合、MultiResourceShiftのインスタンスが作成され、シフトデータから生成されます。従業員が読み込まれ、コレクションに追加されます。

これが可能かどうかは誰でも知っています。どのようにマップしてクエリしますか?

答えて