相关疑难解决方法(0)

实体框架包含左连接是否可能?

我有以下表格

  1. ClassRoom(ClassID,ClassName)
  2. StudentClass(StudentID,ClassID)
  3. 学生(学生ID,学生姓名等)
  4. StudentDescription.(StudentDescriptionID,StudentID,StudentDescription)

我想检索有关student == 1的所有信息

在sql我会做类似下面的事情并获得有关学生的所有信息.

 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
Run Code Online (Sandbox Code Playgroud)

现在我的问题.使用EF4我做了类似的事情,但无法使其工作.你也可以做一个包含和左连接

尝试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;
    }
Run Code Online (Sandbox Code Playgroud)

再次尝试2不完整和错误

using (var ctx …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework left-join

36
推荐指数
4
解决办法
5万
查看次数

由Entity Framework DbContext执行的日志查询

我在MVC 5项目中使用EF 6.0和LINQ.我想记录Entity Framework DbContext执行的所有SQL查询,以进行调试/性能测量.

在Java/Hibernate中,可以通过设置属性来实现等效行为hibernate.show_sql=true.是否有可能在实体框架中有类似的行为?

c# linq entity-framework entity-framework-6 asp.net-mvc-5

35
推荐指数
4
解决办法
3万
查看次数