public virtual async Task <ActionResult <IEnumerable <dynamic> > > Sort([FromQuery] string fields, [FromQuery] string asc, [FromQuery] string desc) { var query = _context.Set <T>().AsQueryable(); if (!string.IsNullOrWhiteSpace(asc)) { var tab2 = asc.Split(','); //on verifie si on a deux éléments dans le tableau pour savoir si on va faire le thenBy() if (tab2.Length == 1) { query = IQueryableExtensions.SelectColonnesAscOne(query, tab2[0]); } else { query = IQueryableExtensions.SelectColonnesAsc(query, tab2); } } if (!string.IsNullOrWhiteSpace(desc)) { var tab3 = desc.Split(','); //on verifie si on a deux éléments dans le tableau pour savoir si on va faire le thenBy() if (tab3.Length == 1) { query = IQueryableExtensions.SelectColonnesDescOne(query, tab3[0]); } else { query = IQueryableExtensions.SelectColonnesDesc(query, tab3); } } if (!string.IsNullOrWhiteSpace(fields)) { var tab1 = fields.Split(','); // var results = await IQueryableExtensions.SelectDynamic<TModel>(query, tab).ToListAsync(); var results = await query.SelectModel(tab1).ToListAsync(); return(results.Select((x) => IQueryableExtensions.SelectObject(x, tab1)).ToList()); // toujours penser a faire le select a la fin return(await query.ToListAsync()); } else { return(Ok(ToJsonList(await query.ToListAsync()))); } }