Methodes de filtrage avec entity framework
Bonjour à toutes et a tous,
Je souhaiterais savoir qu'elles sont les méthodes que vous utilisez pour filtrer vos listes de données dans vos app MVC avec Entity framework.
Avez-vous une methode de filtrage "générique" => filtrage dynamique ?
Exemple : https://github.com/StefH/System.Linq.Dynamic.Core
Une méthode ou vous rechercher une chaine dans tous les champs de tables?
Exemple :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
public List<Movie> GetMovies(FilteringParams filteringParams)
{
var query = this.movies.AsQueryable();
var filterBy = filteringParams.FilterBy.Trim().ToLowerInvariant();
if (!string.IsNullOrEmpty(filterBy))
{
query = query
.Where(m => m.LeadActor.ToLowerInvariant().Contains(filterBy)
|| m.Title.ToLowerInvariant().Contains(filterBy)
|| m.Summary.ToLowerInvariant().Contains(filterBy));
}
return query.ToList();
} |
Une méthode ou vous écrivez vous mème le "Where" (prédicat) en fonction des champs de recherche ?
Exemple :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
public List<Movie> GetMovies(string title, string summary, string leadActor)
{
var query = this.movies.AsQueryable();
if (!String.IsNullOrWhiteSpace(title)) query = query .Where(u => u.Title.Contains(title);
if (!String.IsNullOrWhiteSpace(summary)) query = query .Where(u => u.Summary.Contains(summary);
if (!String.IsNullOrWhiteSpace(leadActor)) query = query .Where(u => u.LeadActor.Contains(leadActor);
return query.ToList();
} |
Autres méthodes ?
Je suis à la recherche d'une méthode la plus "propre" possible et également dynamique pour filtrer mes listes de données.
J'ai pu voir pas mal de solutions à droite et a gauche mais rien ne ma semblé bien structuré et super productif ^^
Je souhaiterais avoir vos avis sur la question.
Je vous remercie.