У меня есть сценарий, в котором мне нужно будет упорядочить по столбцу, который является свойством навигации для сущности Пользователи внутри моей модели EF.
Сущности: Пользователи -> Страны 1: nотношение
Простой запрос SQL будет выглядеть следующим образом:
SELECT UserId, u.Name, c.Name
FROM users u join countries c on u.CountryId = c.CountryId
ORDER BY c.Name asc;
Итак, я попытался повторить вышеупомянутый запрос SQL, используя Linq для сущностей, следующим образом - (Ленивая загрузка включена)
entities.users.OrderBy(field => field.country.Name).ToList();
Но этот запрос не возвращает мои страны, отсортированные по их имени, как это делает нативный SQL-запрос, приведенный выше.
Однако я продолжил немного больше и сделал следующее:
var enumeratedUsers = entities.users.AsEnumerable();
users = enumeratedUsers.OrderBy(fields => fields.country.Name).ToList();
Но заказ объекта enumeratedUser для примерно 50 записей занял ок.7 секунд
Есть ли лучший способ, как опустить Enumerable без возврата анонимного типа?
Спасибо
РЕДАКТИРОВАТЬ
Я просто забыл сказать, что провайдер EF - это MySQL, а не MS SQL.На самом деле я только что попробовал тот же запрос на реплицированной базе данных в MS SQL, и запрос работает нормально, т.е. название страны упорядочено правильно, поэтому, похоже, у меня нет другого выбора, кроме как получить набор результатов из MySQL и выполнить заказ с помощьюиз памяти на перечислимый объект