Linq之关键字基本查询
| 子句 | 说明 |
|---|---|
| from | 指定数据源和范围变量(类似于迭代变量)。 |
| where | 根据一个或多个由逻辑“与”和逻辑“或”运算符(&& 或 ||)分隔的布尔表达式筛选源元素。 |
| select | 指定当执行查询时返回的序列中的元素将具有的类型和形式。 |
| group | 按照指定的键值对查询结果进行分组。 |
| into | 提供一个标识符,它可以充当对 join、group 或 select 子句的结果的引用。 |
| orderby | 基于元素类型的默认比较器按升序或降序对查询结果进行排序。 |
| join | 基于两个指定匹配条件之间的相等比较来联接两个数据源。 |
| let | 引入一个用于存储查询表达式中的子表达式结果的范围变量。 |
| in | join 子句中的上下文关键字。 |
| on | join 子句中的上下文关键字。 |
| equals | join 子句中的上下文关键字。 |
| by | group 子句中的上下文关键字。 |
| ascending | orderby 子句中的上下文关键字。 |
| descending | orderby 子句中的上下文关键字。 |
1、from关键字
需求查询出班级信息
Linq:from g in Grades select g
对应Lambda:Grades.Select (g => g)
对应SQL:select * from Grade
2、where关键字
需求查询出语文成绩大于90的成绩表ID
Linq:from s in ScoreInfo where s.Chinese>90 select s.ScoreId
对应Lambda:ScoreInfo .Where (s => (s.Chinese > 90)) .Select (s => s.ScoreId)
对应SQL:select ScoreId from ScoreInfo where Chinese>90
3、group关键字
需求查询以工资为500的进行分组
Linq:from s in SalaryInfo group s by s.Salary
对应Lambda:SalaryInfo .GroupBy (s => s.Salary)
对应SQL:select Salary from SalaryInfo group by Salary
4、join关键字
需求根据成绩表id,对学生表进行关键
Linq: from s in StudentInfo join c in ScoreInfo on s.ScoreId equals c.ScoreId select new {s, c}
对应Lambda:StudentInfo
.Join (
ScoreInfo,
s => s.ScoreId,
c => c.ScoreId,
(s, c) =>
new
{
s = s,
c = c
}
)
对应SQL:
SELECT [t0].[StudentId], [t0].[ScoreId], [t0].[SName], [t0].[SAge], [t0].[SSex], [t0].[SPhone], [t1].[ScoreId] AS [ScoreId2], [t1].[Chinese], [t1].[Math], [t1].[English]
FROM [StudentInfo] AS [t0]
INNER JOIN [ScoreInfo] AS [t1] ON [t0].[ScoreId] = [t1].[ScoreId]
5、GroupJoin关键字
GroupJoin操作符常应用于返回“主键对象-外键对象集合”形式的查询,如成绩表主键---该主键下的所有学生信息
Linq:from s in ScoreInfo
join c in StudentInfo on s.ScoreId equals c.ScoreId into g
select new {s.ScoreId, list = g}
对应Lambda:ScoreInfo
.GroupJoin (
StudentInfo,
s => s.ScoreId,
c => c.ScoreId,
(s, g) =>
new
{
ScoreId = s.ScoreId,
list = g
}
)
对应SQL:
SELECT [t0].[ScoreId], [t1].[StudentId], [t1].[ScoreId] AS [ScoreId2], [t1].[SName], [t1].[SAge], [t1].[SSex], [t1].[SPhone], (
SELECT COUNT(*)
FROM [StudentInfo] AS [t2]
WHERE [t0].[ScoreId] = [t2].[ScoreId]
) AS [value]
FROM [ScoreInfo] AS [t0]
LEFT OUTER JOIN [StudentInfo] AS [t1] ON [t0].[ScoreId] = [t1].[ScoreId]
ORDER BY [t0].[ScoreId], [t1].[StudentId]
Linq之关键字基本查询的更多相关文章
- Linq中关键字的作用及用法
Linq中关键字的作用及用法 1.All:确定序列中的所有元素是否都满足条件.如果源序列中的每个元素都通过指定谓词中的测试,或者序列为空,则为 true:否则为 false. Demo: 此示例使用 ...
- LINQ中的一些查询语句格式
LINQ的基本格式如下所示:var <变量> = from <项目> in <数据源> where <表达式> orderby <表达式> ...
- LINQ(语言集成查询)
LINQ,语言集成查询(Language Integrated Query)是一组用于c#和Visual Basic语言的扩展.它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作 ...
- Linq to SQL 语法查询(链接查询,子查询 & in操作 & join,分组统计等)
Linq to SQL 语法查询(链接查询,子查询 & in操作 & join,分组统计等) 子查询 描述:查询订单数超过5的顾客信息 查询句法: var 子查询 = from c i ...
- LINQ驱动数据的查询功能
一.LINQ概念 LINQ是微软在.NetFramework3.5中新加入的语言功能,在语言中以程序代码方式处理集合的能力. 1.1 LINQ VS 循环处理 在我刚工作时候,对于集合对象的处理一般是 ...
- Linq to 泛型集合查询集合包括大写M和年龄小于等于18
#region Linq to 泛型集合查询集合包括大写M和年龄小于等于18 //List<Student> list = new List<Student&g ...
- 高性能mysql-----MySQL_explain关键字分析查询语句(一)
转载地址:https://www.cnblogs.com/xpp142857/p/7373005.html MySQL_explain关键字分析查询语句 通过对查询语句的分析,可以了解查询语句的执 ...
- MySQL_explain关键字分析查询语句
版权声明:本文为博主原创文章,转载请注明出处. 通过对查询语句的分析,可以了解查询语句的执行情况.MySQL中,可以使用EXPLAIN语句和DESCRIBE语句来分析查询语句. EXPLAIN语句的基 ...
- LINQ中的"延迟查询"特性【转】
本文转载自:LINQ中的"延迟查询"特性 详细了解“延迟查询”:C#学习笔记(八)—–LINQ查询之延迟执行 很多标准查询操作符的设计原型都是返回一个IEnumerable< ...
随机推荐
- poj3320尺取法
Jessica's a very lovely girl wooed by lots of boys. Recently she has a problem. The final exam is co ...
- Quartz (一)
1 核心接口 1.1 Scheduler---核心调度器 1.2 Job---任务 1.3 JobDetail---任务描述 1.4 Trigger---触发器 2 触发器 Tigger(CornTr ...
- 在android中,如何去掉webview读取网页后点击网页上的按钮出现的方框
参考:http://blog.sina.com.cn/s/blog_64056edc0100xt3l.html <style type="text/css"> .bor ...
- 我的Cocos2dx开发模式
编程环境: 1.window 7 32bit 2.cocos2dx 3.0 3.python 2.7 (注意不要使用3.0以上版本,除非cocos2dx推荐使用) 4.apache-ant-1.9.3 ...
- 分针网—每日分享:HTML解析原理
标准的web前端工程师需要知道 ◎浏览器(或者相应播放器)的渲染/重绘原理 这我得加把劲了.我还真的说的不是很清楚,我就G下,结果不是很多,找到了有一个,就记下来了... 以下部分来自hand ...
- JavaScript常用的方法和函数(setInterval和setTimeout)
1.setInterval:计时器 可以按照指定的周期(以毫秒为单位)来调用函数或计算表达式 调用格式:setinterval(fun,time) 说明:fun为函数体,time为数值,这两个参数是必 ...
- OOP 三大特点:继承性,封装性,多态性
1.继承性:代码重用 2.封装性: 使相似数据和操作进行封装,保持代码安全 3.多态性: PHP不支持多态
- Unity非运行模式下实现动画播放/回退工具
实现效果 核心功能 支持选定模型(带Animator)在非运行模式下,播放/暂停/停止动作. 支持动作单帧前进,单帧回退(帧时间默认0.05f,可以代码设置). 支持滚动条拖拽,将动作调整到指定时间. ...
- STM 8s 外部中断寄存器无法写入
虽然说单片机开发就是对手册的研究,但是开发过程中,还是要做些笔记的,方便以后注意那些坑. 工作要求所以接触了一下STM328s00f3这个芯片,配置外部中断的时候遇到了一点问题 PS:IAR这个开发软 ...
- Window7 下 WNMP 环境搭建
WNMP 指"Windows 下的 Nginx.MariaDB/MySQL 和 PHP 环境". 下载 Nginx:http://nginx.org/en/download.htm ...