用linqpad检索至少选修了程军老师所授全部课程的学生的学号和姓名,
数据库:SC1
表:Cs,S,SCs,Ts
题主要的linq代码如下,表名称自己更改下
using System;
using System.Linq;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
DataClasses1DataContext ctx = new DataClasses1DataContext();
//选出程军教的课程
var rst = ctx.课程表.Where(i => i.教师id == ctx.教师表.Where(x => x.教师姓名 == "程军").Select(x => x.id).FirstOrDefault());
var rs = ctx.学生表.Where(
//选出成绩表中和程军教的课程数量一样的学生id集合
s => ctx.成绩表.Where(c => rst.Select(i => i.id).Contains(c.课程id)).GroupBy(i => i.学生id).Select(i => new { 学生id = i.Key, 课程数 = i.Count() })
.Where(i => i.课程数 == rst.Count()).Select(i=>i.学生id).Contains(s.id)
);
foreach (var r in rs) Console.WriteLine(r.学号+","+r.姓名);
Console.ReadKey();
}
}
}
有帮助或启发麻烦点下【采纳该答案】,谢谢~~有其他问题可以继续交流~