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

fifita92 - 19 juin 2013 à 18:35 - Dernière réponse : Whismeril 11416 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 23 avril 2018 Dernière intervention
- 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

Répondre au sujet
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscriptionModérateurStatut 20 juin 2013 Dernière intervention - 19 juin 2013 à 22:06
+3
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Bidou
Whismeril 11416 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 23 avril 2018 Dernière intervention - 19 juin 2013 à 22:35
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Whismeril
Whismeril 11416 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 23 avril 2018 Dernière intervention - 19 juin 2013 à 19:45
0
Utile
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
Utile
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
Utile
Merci ça marche maintenant j'ai juste fermer et ouvrir à nouveau le projet et ça marcher :)
Commenter la réponse de fifita92
Whismeril 11416 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 23 avril 2018 Dernière intervention - 22 juin 2013 à 17:08
0
Utile
@Bidou, je ressort mon sujet, je t'y expose les embuches sur lesquels je sèche.


Whismeril
Commenter la réponse de Whismeril

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.