reformuler une requete sql
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 :
Code:
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; |
mais lorsque j'utilise un modele pour la reproduire lá mes contraintes ne sont pas optimal.
bref voici a quoi resemble ma requete a travers le model :
Code:
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
}; |
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.
tout conseil,idée ou assistance serais la bien venu.
:?