我有以下数据库:
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);
答案 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} }
希望这有帮助