Entity Framework inclure avec left join est-ce possible?

J'ai les tableaux suivants

  1. Salle De Classe (ClassID,ClassName)
  2. StudentClass (StudentID,ClassID)
  3. Étudiant (StudentID,StudentName,Etc..)
  4. StudentDescription. (StudentDescriptionID,StudentID,StudentDescription)

Je veux récupérer toutes les informations de l'étudiant==1

En sql, je voudrais faire quelque chose comme ci-DESSOUS et obtenez toutes les infos à propos d'un étudiant.

 select * from Student s
 join StudentClass sc on s.StudentID=sc.StudentID
 join ClassRoom c on sc.ClassID=c.ClassID
 left join StudentDescription sd on s.StudentID=sd.StudentID
 where s.StudentID=14

Maintenant mon problème.À l'aide de EF4 j'ai fait quelque chose comme ça, mais impossible de le faire fonctionner.
Aussi pouvez-vous faire un include et un left join

Tentative 1

private static StudentDto LoadStudent(int studentId)
    {
        StudentDto studentDto = null;
        using (var ctx = new TrainingContext())
        {
            var query = ctx.Students
                .Include("ClassRooms")
                .Include("StudentDescriptions")
                .Where(x=>x.StudentID==studentId)
                .SingleOrDefault();

            studentDto = new StudentDto();
            studentDto.StudentId = query.StudentID;
            studentDto.StudentName = query.StudentName;
            studentDto.StudentDescription = ??

        }

        return studentDto;
    }

Tentative 2 encore incomplète et mal

using (var ctx = new TrainingContext())
         {
             var query = (from s in ctx.Students
                             .Include("ClassRooms")
                         join sd in ctx.StudentDescriptions on s.StudentID equals sd.StudentID into g
                         from stuDesc in g.DefaultIfEmpty()
                         select new
                                    {
                                        Name=s.StudentName,
                                        StudentId=s.StudentID,

         }).SingleOrDefault();

Comme vous pouvez le voir, je ne sais pas ce que je fais ici.
Comment puis-je convertir Sql dans une Requête EF?

InformationsquelleAutor user9969 | 2010-11-27