Я использую EF 5.0 Code First API, и мне нужно добавить возможность создания динамических выражений OrderBy (в пользовательском интерфейсе есть панель фильтров, где пользователи могут выбирать несколько критериев упорядочения (например, выбрать 20 лучших клиентов, упорядочить по фамилии ASC, затем по Дата рождения DESC).
ObjectContext API предоставляет метод OrderBy("it.PropertyName")
, который выглядит великолепно, несмотря на отсутствие проверки во время компиляции. Однако я не могу найти аналогов в DbContext API.
Погуглив проблему нашел такой совет:
((IObjectContextAdapter)myContextInstance).ObjectContext.CreateQuery<MyEntity>("<ESQL Query>")
Однако я бы совсем не хотел отказываться от LINQ-запроса. Есть ли способы сделать что-то подобное (смешайте ESQL и LINQ, как это могло бы быть с помощью ObjectContext):
var customers = myDbContext.Customers.OrderBy("it.LastName desc").Where(c => c.Age < 18)