9

Я пытаюсь выяснить, как использовать этот параметр orderBy. Я не уверен, что я предполагаю, чтобы пройти в.Как использовать Порядок В этом примере MSDN

http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application

public virtual IEnumerable<TEntity> Get(
     Expression<Func<TEntity, bool>> filter = null, 
     Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null, 
     string includeProperties = "") 
    { 
     IQueryable<TEntity> query = dbSet; 

     if (filter != null) 
     { 
      query = query.Where(filter); 
     } 

     foreach (var includeProperty in includeProperties.Split 
      (new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)) 
     { 
      query = query.Include(includeProperty); 
     } 

     if (orderBy != null) 
     { 
      return orderBy(query).ToList(); 
     } 
     else 
     { 
      return query.ToList(); 
     } 
    } 

ответ

14

Если вы читаете эти строки из статьи MSDN

«Код Func, IOrderedQueryable> OrderBy также означает, что абонент будет обеспечивать lambda expression. Но в этом случае вход в выражение является объектом IQueryable для типа TEntity. Выражение вернет упорядоченную версию этого объекта IQueryable. Например, если репозиторий создан для типа сущности Student, код в вызывающем методе может указать q => q.OrderBy (s => s.LastName) для параметра orderBy р."

Его высказывание, когда вы вызываете Get, должно предоставить выражение лямбда, которое будет Func или функцией IQueryable, предоставляющей IOrderedQueryable.

Итак, для объекта «Студент», используемого в статье, которую вы используете.

var students = repository.Get(x => x.FirstName = "Bob",q => q.OrderBy(s => s.LastName)); 
+1

На самом деле, я прочитал его, но я этого не понимаю. Я продолжал получать ошибки. Intellisense действительно смутил меня, поэтому я не получил правильного ответа. Благодарю. – xivo

+0

Вы, ребята, знаете, как установить OrderBy в ASC или DESC? – user1477388

+1

@ user1477388 es есть метод OrderBy, который также является методом asc и и OrderByDescending. –

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