1-й подход: ( подходит только для LINQ to Objects с обязанностями, определенными как IList )
Вы можете скопировать в новую коллекцию сотрудников, но это означает, что вам нужно заново скопировать каждое поле в нового сотрудника, что-то вроде этого:
var employees = from e in _context.Employees
orderby e.Name
select new Employee
{
Name = e.Name,
...re-assign other properties...
Responsibilities = e.Responsibilities.OrderBy(r => r.Name).ToList()
};
2-й подход:
Использование DataLoadOptions . По сути, вы создаете объект DataLoadOptions, который определяет порядок упорядочения определенных отношений, поэтому в вашем случае:
var options = new DataLoadOptions();
options.AssociateWith<Employees>(e => e.Responsibilities.OrderBy(r => r.Name));
_context.LoadOptions = options;
var employees = _context.Employees.OrderBy(e => e.Name);
Обязанности будут упорядочены автоматически.