当前位置:编程学习 > C#/ASP.NET >>

一对多的对应关系,查询,求教

class和student是1:M的关系
类 class
id    claseName
1001   三年一班
1002   三年二班

类 student
id    classId   age
1001   1002      8
1002   1002      9
1003   1002      9

已从数据库查询出来一个list<class>,无条件查询出来的
现在要进行筛选,查出三年二班,年龄大于等于9的学生信息

要求写成list.where(...)形式,不是写成from p in list...

谢谢各位!!! --------------------编程问答-------------------- liststu=liststu.Where(t=>t.age>=9&&t.classId==listclass.First(tt=>tt.claseName=="三年二班").id).ToList(); --------------------编程问答-------------------- var id= listclass.First(t=>t.claseName=="三年二班").id;
liststu=liststu.Where(t=>t.age>=9&&t.classId==id); --------------------编程问答-------------------- 分开写 查询只执行一次, 用子查询的话,子查询在父查询每次迭代都会执行一次 --------------------编程问答-------------------- 建立了关系的话,直接 查询

List<class> list=....; 
var query=list.FirstOrDefault(f=>f.claseName=="三年二班").student.Where(t=>t.age>=9);
--------------------编程问答-------------------- join,groupjoin都可以,代码不写了,你知道这两关键词,google一下自己就能搞定 --------------------编程问答--------------------
引用 楼主 shanelewis 的回复:
class和student是1:M的关系
类 class
id    claseName
1001   三年一班
1002   三年二班

类 student
id    classId   age
1001   1002      8
1002   1002      9
1003   1002      9

如果主表符合条件的是多件呢,比如:
类 class
id    claseName   grade
1001   三年一班   三年级
1002   三年二班   三年级
1003   四年一班   四年级

类 student
id    classId   age
1001   1002      8
1002   1002      9
1003   1002      9
查出三年级,年龄大于等于9的学生信息 --------------------编程问答--------------------
引用 2 楼 zhouqinghe24 的回复:
var id= listclass.First(t=>t.claseName=="三年二班").id;
liststu=liststu.Where(t=>t.age>=9&&t.classId==id);

谢谢,如果主表符合条件的是多件呢? --------------------编程问答--------------------
引用 4 楼 claymore1114 的回复:
建立了关系的话,直接 查询
C# code?12List<class> list=....; var query=list.FirstOrDefault(f=>f.claseName=="三年二班").student.Where(t=>t.age>=9);

谢谢,如果主表符合条件的是多件呢?
补充:.NET技术 ,  LINQ
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,