2009-10-22 6 views
0

Я пытаюсь сортировать список объектов с использованием GridView в ASP.NET, но я не могу заставить его работать в следующих примерах. У меня есть свойство Name на моей сущности, и я пытаюсь сортировать по указанному столбцу, если он указан, или столбцу Name, если выражение sortExpression пустое.Entity Framework и сортировка

public static List<Product> GetProducts(int startRowIndex, int maximumRows, string sortExpression) { 
    using(var context = new ShopEntities()) { 
     var products = context.Products; 
     products.OrderBy("it."+(string.IsNullOrEmpty(sortExpression) ? "Name" : sortExpression)) 
             .Skip(startRowIndex) 
             .Take(maximumRows); 
     return products.ToList(); 
    } 
} 

Я не могу его сортировать. Единственным другим вариантом, похоже, является включение имени свойства для каждого свойства в сущности и использование лямбда.

ответ

2

OrderBy не мутирует выражение. Он возвращает выражение , которое ваш код игнорирует. Измените свой код на:

products = products.OrderBy("it."+ //... 
+0

Спасибо, трудно найти. Еще одна вещь, о которой я не знаю, - это префикс «это». Это сложно сделать Google, поскольку это одно из самых распространенных слов, но относится ли это к сущности? – Echilon

+0

Да, это «сущность». Это только для методов Query Builder. –

Смежные вопросы