Hello,
Tout d'abord, si tu veux avoir une réponse qui corresponde à ton problème, merci de mettre le message d'erreur complet et non pas juste "ça marche pas" (je caricature à peine
)
Ensuite, comme le suggère Babyneedle, utilise linq pour ta requête. Je serais même plus catégorique : n'utilise SURTOUT pas de boucles foreach ! En effet, je parle de "requête", car EntityFramework transforme les lignes de code C# en lignes de code SQL. Le code que tu proposes va générer un nombre non négligeable de requêtes SQL et les envoyer au serveur SQL, et ça proportionnellement au nombre d'entreprises et de dirigeants dans la base. Carrément pas bon !
Si tu veux utiliser EF, il faut que tu te mettes au langage Linq
Tu remarqueras que c'est assez proche du langage SQL.
Voici ma proposition de requête :
1 2 3 4
| IEnumerable<dirigeant> =
(from dir in this._cad.dirigeant
where dir.entreprise.Any(x => x.numEnt == idEnt)
select dir).ToList(); |
Ce qui signifie : je recherche tous les dirigeants qui sont liés à l'entreprise d'id idEnt.
Le ToList() à la fin, c'est pour envoyer la requête au serveur SQL : cet envoi se fait uniquement au moment où on a besoin de connaitre la liste des dirigeants telle que définie, j'aime autant avoir la main dessus et imposer cet envoi de requête.
A noter : si tu t'es dit, "je vais utiliser EntityFramework, comme ça pas besoin de m'y connaitre en SQL", c'est un mauvais calcul : les bons utilisateurs EF sont ceux qui connaissent bien les BDD et SQL...
Partager