9

Sto cercando di capire come utilizzare questo ordine come parametro. Non sono sicuro di quello che sto supponiamo di passare.Come utilizzare Order By in questo esempio 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(); 
     } 
    } 

risposta

14

Se stai leggendo questo da l'articolo di MSDN

"Il codice Func, IOrderedQueryable> orderBy significa anche il chiamante fornirà un'espressione lambda, ma in questo caso l'input dell'espressione è un oggetto IQueryable per il tipo TEntity. L'espressione restituirà una versione ordinata di quell'oggetto IQueryable, ad esempio se il repository viene istanziato per il tipo di entità Studente, il codice nel metodo chiamante potrebbe specificare q => q.OrderBy (s => s.LastName) per il parametro orderBy r ".

Quando si chiama Get, è necessario fornire un'espressione lambda che sarà un Func o una funzione sull'IQueryable che fornisce un IOrderedQueryable.

Quindi per l'oggetto Studente utilizzato nell'articolo utilizzato dall'acaro.

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

In realtà, l'ho letto, ma non lo capisco. Ho continuato a ricevere errori. Intellisense in realtà mi ha confuso è il motivo per cui non ho avuto la risposta giusta. Grazie. – xivo

+0

Ragazzi, sapete come impostare OrderBy su ASC o DESC? – user1477388

+1

@ user1477388 es esiste un metodo OrderBy che è anche il metodo asc e orderByDescending. –