各位前辈大家好,本人最近刚开始接触LINQ相关的知识,今天在练习的时候遇到一个多表的查询,想来想去不知道怎么下手,所以来这里问问各位前辈,希望能够得到解答.
这个是我需要实现的窗体:需要通过上方的条件组合查询出结果,并且结果来自不同的数据表.
下面是ER图:
以及我自己写的部分代码:
var dt = (from a in db.ClassInfo
join b in db.TeacherInfo on a.TeacherID equals b.ID
join c in db.MajorInfo on a.MajorID equals c.ID
join d in db.StudentInfo on a.ID equals d.ClassID
join f in db.DepartmentInfo on c.DepartmentID equals f.ID
join g in db.UserInfo on b.UserID equals g.ID
where f.DepartmentName.Contains(XBName) &&
c.MajorName.Contains(ZYName) &&
a.ClassNo.Contains(classNo) &&
a.ClassName.Contains(className) &&
g.UserName.Contains(classTeacher)
select new { f.DepartmentName,c.MajorName,a.ClassNo,a.ClassName,g.UserName }).Where(i=>true).ToList();
gridInfos.DataSource = dt;
补充: studentInfo表中的status 字段 :1在校,2退学,3休学
分开查询的,分了几段
写SQL吧,这么多连接看着都懵。
额,昨天又想了一下,可能是分成两段写的
如果这么多表链接 说明设计的都不合理。。。
😂那也要硬着头皮写,不一定就是我说的这样写,因为我也是初学
[来自一个初学者]