Formulation d'une requete dans une chaine de caractère [Résolu]

- - Dernière réponse : Whismeril
Messages postés
13423
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
19 juin 2019
- 22 juin 2013 à 17:08
Bonjour tout le monde ,je travaille avec entity framework ,je met ma requête dans une chaine de caractère puis je l’exécute mais il me donne rien ,le but de mettre la requête dans une chaine de caractère est le suivant je veux récupérer une condition que je concatène avec la requête ,en premier lieu je teste avec une requête simple ou il n y a pas de condition pour vérifier si ça marche mais il m'affiche rien voila le code que j'ai fait
string r = @"from b in ab.CommandeAchat  ";

string r1 @" select new {Référence b.refCommande, Date_Commande = b.dateCommande,  Date_prévue = b.datePrevu, Etat = b.EtatAchat};";

  var query = r +r1;
  var users = query.ToList();
  datagridview1.DataSource = users;

Merci d'avance
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
37
3
Merci
whismeril> Le if n'est pas directement supporté dans une requête linq, mais l'operator ternaire ?: si. Une autre possibilité est d'utiliser le mot clé let, ça peut simplifier un peu la requête...

Pour ce qui est des requêtes qui "évoluent" durant l'exécution, il suffit de passer par un type IQueryable<T> qui permet exactement la manipulation d'arbres d'expression représentant la requête.

Par exemple:
IQueryable<MyType> myQuery = myRepository.Query<T>(...);
myQuery = myQuery.Where(...);
if(condition)
{
   myQuery = myQuery.Where(...)
}
List<MyType> result = myQuery.ToList();


Pour des cas spéciaux nécessitant une requête dynamic, on peut toujours en dernier recours passer par la Dynamic Linq Library.

Ces quelques explications devraient pouvoir t'aider à améliorer ton """code""" proposé dans le lien ci-dessus.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 139 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Bidou
Messages postés
13423
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
19 juin 2019
280
3
Merci
Bonsoir Bidou, je n'avais pas pensé au tertiaire et à l'époque personne n'avait répondu.

J'ai trouvé cet exemple tout à l'heure, je pensais l'avoir envoyé, j'ai du oublié de cliquer sur le bouton "Envoyé"...
C'est effectivement une bonne piste d'amélioration.
Merci


Whismeril

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 139 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Whismeril
Messages postés
13423
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
19 juin 2019
280
0
Merci
Je ne suis pas sûr de bien comprendre ton besoin, mais en gros je pense que tu veux une requête qui évolue pendant l'exécution.

Si c'est bien le cas, j'ai eu un problème du même genre, je l'ai résolu en compilant du code en dynamique.

Voir ici.


Whismeril
Commenter la réponse de Whismeril
0
Merci
Bonjour tout le monde ,Merci beaucoup pour votre aide ,SVP je viens d'intégrer the dynamic query library dans visual studio 10 en rajoutant le fichier Dynamic.cs dans mon projet mais toujours il ne reconnait pas
using System.Linq.Dynamic;
SVP si vous voulez me dire ou je dois exactement mettre le fichier et s' il y a d'autres fichiers que je dois les intégrer .
Merci d'avance :)
Commenter la réponse de fifita92
0
Merci
Merci ça marche maintenant j'ai juste fermer et ouvrir à nouveau le projet et ça marcher :)
Commenter la réponse de fifita92
Messages postés
13423
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
19 juin 2019
280
0
Merci
@Bidou, je ressort mon sujet, je t'y expose les embuches sur lesquels je sèche.


Whismeril
Commenter la réponse de Whismeril