В настоящее время мы работаем над унаследованным приложением, и мы заменяем доступ к данным на NHibernate, поскольку старый доступ к данным не выполнял рыхлую / ленивую загрузку, части системы выполняли более 2000 запросов для создания отношений ...
Все хорошо, за исключением того, что я абсолютно не знаю, как отобразить один сценарий.
У нас есть 'Shift' и 'MultiResourceShift'
public class Shift
{
public int Id { get; protected set; }
public string EmployeeName { get; set; }
public IEnumerable Breaks { get; set; }
...
}
Multi Resource Shiftс другой стороны, фактически это сдвиг, в котором может быть назначено несколько сотрудников.
public MultiResourceShift : Shift
{
public IEnumerable Employees { get; set; }
public bool IsMultiResource { get; set; }
}
Структура базы данных отображается как один-ко-многим, например:
+--------------------+
| Shift |
+--------------------+
| ShiftId |
| EmployeeName |
| IsMultiResource |
| ... |
+--------------------+
+--------------------+
| MultiResourceShift |
+--------------------+
| MultiResourceId |
| ShiftId |
| EmployeeId |
| ... |
+--------------------+
В идеале это необходимо запрашивать, когда результат возвращает коллекцию Shifts или MultiResourceShifts.
На данный момент это достигается путем перебора ридера, и если это Shift, он отображается и добавляется в коллекцию, если это Multi Resource, создается экземпляр MultiResourceShift и заполняется из данных сдвига,и сотрудники загружаются, а затем добавляются в коллекцию.
Кто-нибудь знает, возможно ли это, как я могу сопоставить его и запросить его.