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

Signaler
-
Messages postés
15111
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
18 novembre 2020
-
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

6 réponses

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
49
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.
Messages postés
15111
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
18 novembre 2020
460
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
Messages postés
15111
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
18 novembre 2020
460
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
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 :)
Merci ça marche maintenant j'ai juste fermer et ouvrir à nouveau le projet et ça marcher :)
Messages postés
15111
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
18 novembre 2020
460
@Bidou, je ressort mon sujet, je t'y expose les embuches sur lesquels je sèche.


Whismeril