日期:2014-05-20  浏览次数:20938 次

关于关系表的读取
表A班级
[classid] [classname]
表B学生
[studentid][Name]
表C班级学生关系表
[id][classid][studentid]

同一个学生可以参加多个兴趣班,所以用了一个班级学生兴趣表
这时,我想查询所有包括学生A 和学生B 的兴趣班

如果在SQL里查询,我是这样的,建一个视图
select classid,studentid,classname,Name from talbeA inner join talbeC on a.classid=c.classid inner join tableB on tableC.studentid=tableB.studentid

假设视图名称是V_all
则查询语句是 
select * from V_all where classid in (select classid in V_all where Name='A') where name='B'


求linq 的查询方法~~









------解决方案--------------------
var query = from a in A
join c in C
on a.classid = c.classid
into ac
join b in B
on ac.studentid = b.studentid
 var query1 = from abc in query
join abc1 in quey
on abc.classid = abc1.classid
and abc1.name = 'A'
where abc.name = 'B'
------解决方案--------------------
var query= from c in C 
where new string[]{"A","B"}.Contains(c.B.Name)
select new{c.A.classid,c.A.className,c.B.studentid,c.B.Name};


ps: linq语法要求 join...on xxx equals xxx
也木有and 这个写法 应该是 &&