|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Aude Masly Inscription : janvier 2010 Messages : 34 ![]() |
Bonjour à tous,
Je rencontre un problème pour réaliser une requête avec LINQ To Entities avec un Left Outer Join. Je vous explique le contexte. J’ai une table Client dans laquelle on trouve diverses infos (nom, …). Il a ensuite une table Contrat avec, là aussi, quelques informations (ref du contrat, …). Entre les deux, une table Souscription qui fait office d’intermédiaire. Elle contient une Date de souscription, une date de résiliation. Un client peut donc souscrire à 0, 1 ou plusieurs contrats et on garde l’historique de ses anciennes souscriptions. ![]() Mon objectif est de ressortir la liste complète des Clients avec le/les souscriptions actuelles (avec une Date de résiliation à null ou supérieure à la date du jour). Je dois bien évidemment récupérer les clients qui n’ont pas de souscriptions (soit car toutes les Souscriptions ont une date de résiliation passée, soit car il n’y a encore rien dans cette table). La requête SQL pour faire cela est très simple : Code :
Mais pour faire cela en Linq to Entities, c’est beaucoup plus difficile. J’ai tout essayé sans succés. A chaque fois, il me manque des clients (ceux qui n’ont aucune donnée dans la table Souscription par exemple). Comment faire une telle requête ? Merci d'avance pour votre aide. |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() |
J'ai pas testé mais t'as essayé ça
Code C# :
|
||
|
00
|
|
|
#3 | ||
|
Invité régulier
![]() Aude Masly Inscription : janvier 2010 Messages : 34 ![]() |
Bonjour,
Malheureusement, cette requête ne fonctionne pas. Code :
|
||
|
|
00
|
|
|
#4 |
![]() ![]() |
Ah ouais je vois.
Mais as-tu pensé à avoir deux requêtes linq séparées. l'une avec les clients ayant les souscription avec ta condition et l'autre sans. Une troisième a exécuter pour faire l'union des deux précédentes. |
|
00
|
|
|
#5 |
![]() ![]() |
Sinon je viens de lire une discussion où iberserk proposait pour un problème a peu près le même de passer par une vue.
Etant donné que ta requête T-SQL te permet d'avoir ce que tu veux de façon très simple pourquoi ne pas créer une vue pour celle-ci et importer la vue dans ton modèle EDM.
|
|
00
|
|
|
#6 | |||||
|
Membre Expert
![]() |
Citation:
![]() Vous pouvez aussi passer par une fonction table (SQL)si vous le souhaitez. La fonction table est IQUERYABLE contrairement à la procédure stockée et peu accepter des paramètres. pour exemple vous pourriez arriver à ca: Code :
Code :
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com