C# 如何从该数据库架构中获取学生列表?

C# 如何从该数据库架构中获取学生列表?,c#,linq,entity-framework,C#,Linq,Entity Framework,我有以下数据库: table Student StudentID Name LastName table Grade GradeId Name table GradeInstance GradeInstanceId GradeId Name Year table StudentInstance StudentInstanceId GradeInstanceId StudentInstanceId 如何从给定年级实例检索学生列表 我使用实体框架作为我的ORM,那么Linq查询是什么样的呢

我有以下数据库:

table Student
StudentID 
Name
LastName

table Grade
GradeId
Name

table GradeInstance
GradeInstanceId
GradeId
Name
Year

table StudentInstance
StudentInstanceId
GradeInstanceId
StudentInstanceId
如何从给定年级实例检索学生列表

我使用实体框架作为我的ORM,那么Linq查询是什么样的呢

编辑:我需要返回Student对象,而不是StudentInstance对象,因为这些对象不包含我需要填充GUI的属性

所以像这样的事情对我不起作用,除非我在这里遗漏了什么P

dbContext.StudentInstances.Where(s => s.GradeInstanceId == 1);

这将帮助您开始

    public static List<Student> GetStudents(int gradeId)
    {
        using (var context = new Entities())
        {
            List<Student> myList = (from s in dbContext.Student 
join si in dbContext.StudentInst on s.StudentID equals si.StudentInstanceID
join g in dbContext.Grade on si.GradeInstanceID equals g.GradeID
where g.GradeId = gradeId
select s).ToList();

         return myList;
        }
    }
公共静态列表GetStudents(int-gradeId)
{
使用(var context=new Entities())
{
List myList=(来自dbContext.Student中的s)
在s.StudentID上的dbContext.StudentInstance中加入si等于si.StudentInstanceID
在si.GradeInstanceID等于g.GradeID的dbContext.Grade中加入g
其中g.GradeId=GradeId
选择s.ToList();
返回myList;
}
}

使用稍微修改过的:D

您可以将导航属性添加到GradeInstance实体到与其相关的学生实体集合中(您实际上可以从添加关联向导中执行此操作),然后只需使用:
GradeInstance.Students


希望这有帮助

不太好,这会回报所有学生。我只需要StudentInstance表中X号为GradeInstanceId的学生
    public static List<Student> GetStudents(int gradeId)
    {
        using (var context = new Entities())
        {
            List<Student> myList = (from s in dbContext.Student 
join si in dbContext.StudentInst on s.StudentID equals si.StudentInstanceID
join g in dbContext.Grade on si.GradeInstanceID equals g.GradeID
where g.GradeId = gradeId
select s).ToList();

         return myList;
        }
    }