slt voila j'aimerais pourvoir reformule une requete sql mais malgré mes effort je ne parviens pas toujours a l'optimiser
voici a quoi ma requête sur sql ressemble :
mais lorsque j'utilise un modele pour la reproduire lá mes contraintes ne sont pas optimal.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 select = "SELECT * "; from = " FROM Etudiant,EtudiantMatiere "; where = " WHERE Etudiant.EtudiantId = EtudiantMatiere.EtudiantId "; if (etudiant.FirstName != null && etudiant.FirstName.Length > 0) { where = where + " AND Etudiant.FirstName LIKE '%" + etudiant.FirstName + "%'"; } if (etudiant.Cycle.Length > 0) { where = where + " AND EtudiantMatiere.Cycles LIKE '%" + etudiant.Cycle + "%'"; } if (etudiant.options != null && etudiant.options.Length > 0) { where = where + " AND EtudiantMatiere.options LIKE '%" + etudiant.options + "%'"; } if (etudiant.groupe != null && etudiant.groupe.Length > 0) { where = where + " AND EtudiantMatiere.groupe LIKE '%" + etudiant.groupe + "%'"; } if (etudiant.Niveau != null && etudiant.Niveau.Length > 0) { where = where + " AND EtudiantMatiere.Niveau LIKE '%" + etudiant.Niveau + "%'"; } query = select + " " + from + " " + where;
bref voici a quoi resemble ma requete a travers le model :
l'approche avec le modèle ne me retourne qu'un seul enregistrement alors que je souhait obtenir plusieurs.alors comment rendre ma requête plus optimal.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 IQueryable etudiantliste = from et in _db.Etudiants from etm in _db.EtudiantMatieres where ( et.FirstName.Contains(etudiant.FirstName) && etm.Cycles.Contains(etudiant.Cycle) && etm.options.Contains(etudiant.options) && etm.groupe.Contains(etudiant.groupe) && etm.Niveau.Contains(etudiant.Niveau) ) select new EtudiantModel { EtudiantId = et.EtudiantId, FirstName = et.FirstName, LastName = et.LastName, Sexe = et.Sexe, Numero = et.Numero, Contact = et.contact, Matricule = et.Matricule, Email = et.Email, Cycle = etm.Cycles, options = etm.options, groupe = etm.groupe, Niveau = etm.Niveau };
tout conseil,idée ou assistance serais la bien venu.
Partager