2011-01-11 12 views
0

Im Moment arbeiten wir an einer Legacy-Anwendung und ersetzen den Datenzugriff durch NHibernate. Da der alte Datenzugriff nicht eifrig/lazy geladen wurde, führten Teile des Systems mehr als 2000 Abfragen durch Beziehungen erstellen ...Fluent NHibernate Map Vererbte Klasse

Alles ist gut, außer ich habe absolut keine Idee, wie man ein Szenario abbildet.

Wir haben eine ‚Shift‘ und ein

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

Multi Ressourcenverschiebung auf dem Otherhand, effektiv eine Verschiebung ist, kann, dass mehrere Mitarbeiter zugewiesen werden.

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

Die Datenbankstruktur ist als ein zugeordnetes one-to-many wie:

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

ideal auf die Bedürfnisse dieser abgefragt werden, wo das Ergebnis eine Sammlung von Shifts zurückgibt, oder MultiResourceShifts.

Im Moment wird dies durch Iterieren über den Reader erreicht, und wenn es eine Shift ist, wird es der Sammlung hinzugefügt und hinzugefügt, wenn es eine Multi Ressource ist, wird eine Instanz von MultiResourceShift erstellt und aus den Shift Daten populiert Mitarbeiter werden geladen und dann zur Sammlung hinzugefügt.

Wer weiß, ob dies möglich ist, wie ich es zuordnen und abfragen würde.

Antwort