Bonjour à tous,

Encore une fois je compte sur vos lumières pour me sortir d’un pétrin !

Soit le schéma de bdd suivant :
Etudiant 1-* MathsMoyenne 1-* MathsDetail

Et la super requête :
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
var queryO = from et in this.EFContext.Etudiants
	     where et.Year == year && et.A31 == a31 && et.Name == Name
             join mm in this.EFContext.MathsMoyenne on new { et.Name } equals new { mm.Name } into tempmm
             from mms in tempmm.DefaultIfEmpty()
             join md in this.EFContext.MathsDetails on new { et.Name } equals new { md.Name } into tempmd
             from mds in tempmd.DefaultIfEmpty()
             where mds.MeasureDate == measureDate
             select new EtudiantNote{...}

Ce que je désire, c’est, pour une année passée en paramètre (concerne l'étudiant), un groupe particulier (concerne l'étudiant) et une date de note (date du contrôle, concerne MathsDetail), obtenir un nouvel objet qui contiendra des détails sur l’étudiant, les moyennes en maths et surtout des infos sur le contrôle (mathsDetail) à la date spécifiée.
Facile me direz vous, le code fonctionne.

Oui mais ! Il faudrait que cela fonctionne également s’il n’y a pas de MathsDetail à la NoteDate spécifiée. Autrement dit je souhaite, même s’il n’y a pas de MathsDetail répondant aux critères en bdd, remonter ma liste des « EtudiantNote » avec ses propriétés MathsDetail vides pour saisie.

Avez-vous une idée ?
Merci !


PS: j'utilise une bdd Oracle avec le composant devart.