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

时间:2011-04-06 21:34:03

标签: c# linq entity-framework

我有以下数据库:

table Student
StudentID 
Name
LastName

table Grade
GradeId
Name

table GradeInstance
GradeInstanceId
GradeId
Name
Year

table StudentInstance
StudentInstanceId
GradeInstanceId
StudentInstanceId

如何从给定的成绩实例中检索学生列表?

我正在使用Entity Framework作为我的ORM,那么Linq查询会是什么样的?

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

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

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

3 个答案:

答案 0 :(得分:1)

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.Name = ...
select s;

答案 1 :(得分:0)

这可以帮助你开始......

    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;
        }
    }

使用稍加修改的query:D

答案 2 :(得分:0)

您可以将GradeInstance实体的导航属性添加到与其相关的Student实体集合中(您实际上可以通过添加关联向导执行此操作),然后您可以使用以下内容轻松访问它:{{1} }

希望这有帮助