Это структура сущности:
var department = _context.Departments
.Include(dep => dep.Employees.Select(emp => emp.ContactTypes))
.SingleOrDefault(d => d.Id == departmentId);
Здесь я ожидаю, что один отдел будет возвращен, содержащий всех связанных сотрудников и все типы контактов для каждого сотрудника.
Это ormlite servicestack:
Я понятия не имею. Когда я смотрю на документ/образцы: https://github.com/ServiceStack/ServiceStack.OrmLite
Они пишут:
Прямо сейчас поддержка Expression может удовлетворять большинству простых запросов с помощью строго типизированного API. Для чего-либо более сложного (например, запросов с объединением таблиц) вы все равно можете легко вернуться к необработанным SQL-запросам, как показано ниже.
Я видел, что есть класс JoinSqlBuilder, но я не думаю, что он может возвращать вложенные коллекции.
Возможно, то, что я хочу, невозможно, но, возможно, я могу пойти на компромисс, как получить всех сотрудников для отдела. Затем я хочу, чтобы сотрудники и получили все типы контактов для определенного сотрудника. Создание иерархии и назначение списков по-прежнему будут моей работой.
Но я надеюсь, что есть более короткое решение.
Что также было бы хорошо, когда запрос, однако, выглядел бы как возвращающий объект (Dynamic?) с тремя плоскими свойствами: Department, Employees, ContactTypes и присваивать thoese свойства моему DTO.