Я пытался использовать динамическое LINQ to Entity в своем приложении для указания атрибута OrderBy во время выполнения. Однако при использовании кода, описанного в большинстве документов:
var query = context.Customer.OrderBy("Name");
Я получил следующее исключение:
System.Data.EntitySqlException: «Имя» не может быть разрешено в текущей области или контексте. Убедитесь, что все ссылочные переменные находятся в области видимости, что необходимые схемы загружены и что на пространства имен ссылаются правильно.
После долгих поисков я нашел эту страницу MSDN:
http://msdn.microsoft.com/en-us/library/bb358828.aspx
Который включал следующий пример кода:
ObjectQuery<Product> productQuery2 = productQuery1.OrderBy("it.ProductID");
Это побудило меня изменить код на следующий:
var query = context.Customer.OrderBy("it.Name");
После этого код работает отлично. Кто-нибудь сможет подтвердить, что это действительно правильный способ заставить OrderBy работать с LINQ to Entity? Я не могу поверить, что структура была бы реализована таким образом, возможно, я что-то упустил из виду?
Спасибо, Мэтт