Formulation d'une requete dans une chaine de caractère

Résolu
fifita92 - 19 juin 2013 à 18:35
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 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

6 réponses

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
19 juin 2013 à 22:06
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.
3
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
19 juin 2013 à 22:35
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
3
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
19 juin 2013 à 19:45
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
0
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 :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Merci ça marche maintenant j'ai juste fermer et ouvrir à nouveau le projet et ça marcher :)
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
22 juin 2013 à 17:08
@Bidou, je ressort mon sujet, je t'y expose les embuches sur lesquels je sèche.


Whismeril
0
Rejoignez-nous