J'utilise les modèles mentionnés ici 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-applicationdynamique Func <IQueryable <TEntity>, IOrderedQueryable <TEntity>> Expression
et je suis en utilisant la méthode ci-dessous pour interroger EF
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();
}
}
Maintenant, je veux créer l'expression Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>
dynamique commander mes données.
Je ne connais que le nom du champ en tant que chaîne et le type ordre (ascendant, descendant) sous forme de chaîne (asc, desc)
Ce n'est pas la forme habituelle d'un ordre par; avez-vous vu cette? http://stackoverflow.com/questions/41244/dynamic-linq-orderby –
@MarcGravell merci, j'ai vu ça. Mais le tutoriel de MS contient ce code, donc j'essaie d'écrire un LINQ dynamique pour cela. En fait, je pense que j'ai réussi, mais je dois faire quelques tests et ensuite vous faire savoir. –