9

Estoy tratando de averiguar cómo usar este parámetro orderBy. No estoy seguro de lo que estoy supone que debe pasar.Cómo utilizar Order By en este ejemplo de 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(); 
     } 
    } 

Respuesta

14

Si usted lee este del artículo de MSDN

"El código Func, IOrderedQueryable> orderBy también indica que el interlocutor proporcionará una expresión lambda. Pero en este caso, la entrada a la expresión es un objeto IQueryable para el tipo de TEntity. La expresión devolverá una versión ordenada de ese objeto IQueryable. Por ejemplo, si el repositorio se instancia para el tipo de entidad Estudiante, el el código en el método de llamada podría especificar q => q.OrderBy (s => s.LastName) para el parámetro orderBy r. "

Su refrán cuando llame al Get debe proporcionar una expresión lambda que será una función Func o en el IQueryable proporcionando un IOrderedQueryable.

Para el objeto Estudiante utilizado en el artículo que usted usa.

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

En realidad, lo leí, pero no lo entiendo. Seguí recibiendo errores. Intellisense realmente me confundió es por qué no obtuve la respuesta correcta. Gracias. – xivo

+0

¿Ustedes saben cómo configurar OrderBy en ASC o DESC? – user1477388

+1

@ user1477388 es hay un método OrderBy que es asc y también el método OrderByDescending. –