Recherche dynamique en linq to entity

tayeb3 Messages postés 3 Date d'inscription mardi 31 décembre 2013 Statut Membre Dernière intervention 10 janvier 2014 - 31 déc. 2013 à 15:00
DevLama Messages postés 356 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 18 novembre 2021 - 7 janv. 2014 à 17:05
Bonjour tous le monde,
je veut savoir comment faire la même chose de cette recherche en linq to entity et merci mille fois:


db_azddineEntities dbe = new db_azddineEntities();
string req = "SELECT VALUE cl FROM client AS cl WHERE cl.numero>0";

if (button6mekes.BackColor == Color.LimeGreen)
{
if (req.EndsWith("cl.numero>0"))
{
req = req + " and cl.ville ='meknes'";
// MessageBox.Show("d");
}
else
{
req = req + " or cl.ville ='meknes'";
}
}

if (button7fes.BackColor == Color.LimeGreen)
{
if (req.EndsWith("cl.numero>0"))
{
req = req + " and cl.ville ='fes'";
}
else
{
req = req + " or cl.ville ='fes'";
}

}

ObjectQuery<client> requete = new ObjectQuery<client>(req, dbe, MergeOption.NoTracking);
requete.ToList().ForEach((client p) =>
{
dataGridView3.Rows.Add(p.numero, p.nom, p.prenom,p.ville);

});

2 réponses

Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
1 janv. 2014 à 10:16
Bonjour, merci quand tu postes un code d'utiliser les balises (voir ma signature, attention il y a un petit bug pour csharp, il manque le s à corriger avant l'envoi).

Pour faire des if .... else.... dans une requête Linq, il faut utiliser l'opérateur ?:, cependant je ne l'ai jamais utilisé pour choisir l'opérateur.

Ton deuxième if, à mon sens ne sert à rien:
db_azddineEntities dbe = new db_azddineEntities(); 
string req = "SELECT VALUE cl FROM client AS cl WHERE cl.numero>0"; 

if (button6mekes.BackColor == Color.LimeGreen) 
{ 
    if (req.EndsWith("cl.numero>0")) // à ce moment du code, req finit forcement par "cl.numero>0", à moins que tu aies coupé une partie de code entre la déclaration et ici
    { 
         req = req + " and cl.ville ='meknes'"; 
        // MessageBox.Show("d"); 
    } 
   else 
   { 
        req = req + " or cl.ville ='meknes'";
   } 
} 



Sinon pour faire du Linq Dynamique, il y a cette méthode.


Je ne fais pas de base de données, il y a peut être des subtilités que je ne connais pas.
Mais si tu veux, je pourrais de donner un exemple en partant d'une List<T> pour tes données (heu demain....).
0
tayeb3 Messages postés 3 Date d'inscription mardi 31 décembre 2013 Statut Membre Dernière intervention 10 janvier 2014
5 janv. 2014 à 21:08
Comment afficher les données entre deux tables en utilisant ObjectQuery<>
0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
5 janv. 2014 à 22:25
Comme je te l'ai écrit plus haut, je ne fais pas de base de données.
0
DevLama Messages postés 356 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 18 novembre 2021 10
7 janv. 2014 à 17:05
var req1=from ds in db.Table

0
Rejoignez-nous