Bonjour à tous,
D'habitude, rechercher dans les forums me suffit mais aujourd'hui j'ai vraiment rien trouvé.
Je suis actuellement en DUT info(2ème année) et on nous initie au C# avec l'entity Framework
Nous devons faire une gestion d'une cave à vin avec un moteur de recherche
suivant plusieurs critère(ex : Pays, région, appellation, château, etc..)
Ainsi j'ai besoin que ma requête puisse varier en fonction des informations entrées par l'utilisateur. Et c'est là que ce complique les choses :
Je n'arrive pas à trouver un moyen pour que ma requête puisse évoluer en fonction de la définition de certaines de mes variables membres.
Fini le blabla, voici le code de la requête :
Objectif : si l'utilisateur n'a pas choisit de Pays par exemple alors le where consistera à faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 var linq = from pays in caveContext.T_PAYS_PAY.Where(queryPays) from region in caveContext.T_REGION_REG.Where(queryRegion) from appelation in caveContext.T_APPELLATION_APT.Where(queryAppelation) from chateau in caveContext.T_CHATEAU_CHT.Where(queryChateau) from bouteille in caveContext.T_BOUTEILLE_BTL.Where(queryBouteille) select bouteille; return ((ObjectQuery)linq).Execute(MergeOption.AppendOnly);
where pays.PAY_C_CODE == pays.PAY_C_CODE //en gros j'annule le where
mais si il a choisi un pays alors :
where pays.PAY_C_CODE == this.codePays
je pense qu'il y a surement un moyens plus propre de le faire mais j'arrive même pas avec cette méthode trash, c'est comme si on ne pouvait plus faire de concaténation de string pour faire notre requête sur mesure.
J'espère que vous serez en mesure de m'aider car actuellement je suis un peu dégoûté qu'on ne puisse pas faire de requête sur mesure.
Partager