Посмотрите на этот блог здесь . Он описывает способ сделать это, определяя EntitySorter
.
Он позволяет вам передать IEntitySorter
в ваши методы обслуживания и использовать его следующим образом:
public static Person[] GetAllPersons(IEntitySorter sorter)
{
using (var db = ContextFactory.CreateContext())
{
IOrderedQueryable sortedList = sorter.Sort(db.Persons);
return sortedList.ToArray();
}
}
И вы можете создать EntitiySorter
следующим образом:
IEntitySorter sorter = EntitySorter
.OrderBy(p => p.Name)
.ThenByDescending(p => p.Id);
Или вот так:
var sorter = EntitySorter
.OrderByDescending("Address.City")
.ThenBy("Id");