•LINQ(发音:Link)是语言级集成查询(Language INtegrated Query)

•LINQ是一种用来进行数据访问的编程模型,使得.NET语言可以直接支持数据查询
•LINQ的目标是降低访问数据的复杂度
•LINQ可以用统一的方法访问不同类型的数据,可以将数据作为对象使用
•能够更好地与编程模型集成
•可以在Visual Studio中进行智能提示
•动态编程
 
LINQ的历史:
•从语言方面的进化
–委托
–匿名方法
–Lambda表达式
–Linq查询表达式
•从时间方面的演进
–2004年
–2005年9月,C#2.0的PDC上发布
–2005年11月,C#2.0预览版
–2006年1月,VB8.0预览版
–2007年11月,.net 3.5发布
 
 LINQ基础:

•语言集成查询 (LINQ) 允许开发人员通过强类型化语法使用.NET Framework 3.5 代码编写类似SQL 的查询。
•LINQ 查询还具有一个标准查询操作符库来增强其功能。这些标准查询操作符对序列进行运算并可执行各种运算,如确定序列中是否存在某个值以及对序列运行合计函数(如求和)
•LINQ包括:
–LINQ to Objects  用于对象的查询
–LINQ to XML  对XML数据的查询
–LINQ to ADO.NET  对数据库的查询
•LINQ to DataSets  数据集
•LINQ to Entities  ORM对象
•LINQ to SQL  简易ORM框架
•命名空间在System.Linq
•实现 IEnumerable<T> 或 IQueryable<T> 接口的对象都可使用LINQ操作
 
LINQ框架图:
 
LINQ基础语法:

•From ?? In ** where … select  new {};
–查询语法是以 from 关键字开头的,而不是以 select 关键字开头的?
–为了IDE的智能感知(Intelisence)这个功能,select 关键字放在后面
•例:
var q =   
from c in db.Customers   
where c.City == "London"   
select c;
•语法与数据库的SQL命令有些相似
select * from employee where empno=7376;
 
LINQ基础操作符:

•聚合 
•Aggregate  对序列执行一个自定义方法
•Average  计算数值序列的平均值
•Count  返回序列中的项目数(整数)
•LongCount  返回序列中的项目数(长型)
•Min  查找数字序列中的最小数
•Max  查找数字序列中的最大数
•Sum  汇总序列中的数字
•元素 
•DefaultIfEmpty  为空序列创建默认元素
•ElementAt  返回序列中指定索引的元素
•ElementAtOrDefault返回序列中指定索引的元素,或如果索引超出范围则返回默认值
•First  返回序列中的第一个元素
•FirstOrDefault  返回序列中的第一个元素,或者如果未找到元素,则返回默认值
•Last  返回序列中的最后一个元素
•LastOrDefault  返回序列中的最后一个元素,或者如果未找到元素,则返回默认值
•Single  返回序列中的单个元素
•SingleOrDefault  返回序列中的单个元素,或者如果未找到元素,则返回默认值
•排序
•OrderBy  以升序按值排列序列
•OrderByDescending  以降序按值排列序列
•ThenBy  升序排列已排序的序列
•ThenByDescending  降序排列已排序的序列
•Reverse  颠倒序列中项目的顺序
•…
•…
 
 
LINQ的未来:

•一切皆可LINQ,一切皆有可能
•程序语言向自然语言的进化
•数据库存储在软件系统分层中更清晰
•基于.net平台的软件体系更好应用ORM
•影响编程习惯,及解决问题的思路
 
LINQ参见资料:

•http://dev.yesky.com/topic/305/8142805.shtml
•http://www.verycd.com/topics/2762344/
•http://www.docin.com/p-49692160.html
•http://cid-79cf5e75e6e5fd50.spaces.live.com/blog/cns!79CF5E75E6E5FD50!379.entry
 
转载自:https://blog.csdn.net/sytweibo/article/details/5542934。

LinQ是什么?的更多相关文章

  1. Linq表达式、Lambda表达式你更喜欢哪个?

    什么是Linq表达式?什么是Lambda表达式? 如图: 由此可见Linq表达式和Lambda表达式并没有什么可比性. 那与Lambda表达式相关的整条语句称作什么呢?在微软并没有给出官方的命名,在& ...

  2. Linq之旅:Linq入门详解(Linq to Objects)

    示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...

  3. [C#] 走进 LINQ 的世界

    走进 LINQ 的世界 序 在此之前曾发表过三篇关于 LINQ 的随笔: 进阶:<LINQ 标准查询操作概述>(强烈推荐) 技巧:<Linq To Objects - 如何操作字符串 ...

  4. [C#] 进阶 - LINQ 标准查询操作概述

    LINQ 标准查询操作概述 序 “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法.大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> ...

  5. LINQ to SQL语句(7)之Exists/In/Any/All/Contains

    适用场景:用于判断集合中元素,进一步缩小范围. Any 说明:用于判断集合中是否有元素满足某一条件:不延迟.(若条件为空,则集合只要不为空就返回True,否则为False).有2种形式,分别为简单形式 ...

  6. .NET深入实战系列—Linq to Sql进阶

    最近在写代码的过程中用到了Linq查询,在查找资料的过程中发现网上的资料千奇百怪,于是自己整理了一些关于Linq中容易让人困惑的地方. 本文全部代码基于:UserInfo与Class两个表,其中Cla ...

  7. LINQ Group By操作

    在上篇文章 .NET应用程序与数据库交互的若干问题 这篇文章中,讨论了一个计算热门商圈的问题,现在在这里扩展一下,假设我们需要从两张表中统计出热门商圈,这两张表内容如下: 上表是所有政区,商圈中的餐饮 ...

  8. Entity Framework 6 Recipes 2nd Edition(11-9)译 -> 在LINQ中使用规范函数

    11-9. 在LINQ中使用规范函数 问题 想在一个LINQ查询中使用规范函数 解决方案 假设我们已经有一个影片租赁(MovieRental )实体,它保存某个影片什么时候租出及还回来,以及滞纳金等, ...

  9. Entity Framework 6 Recipes 2nd Edition(11-11)译 -> 在LINQ中调用数据库函数

    11-11. 在LINQ中调用数据库函数 问题 相要在一个LINQ 查询中调用数据库函数. 解决方案 假设有一个任命(Appointment )实体模型,如Figure 11-11.所示, 我们想要查 ...

  10. Entity Framework 6 Recipes 2nd Edition(13-6)译 -> 自动编译的LINQ查询

    问题 你想为多次用到的查询提高性能,而且你不想添加额外的编码或配置. 解决方案 假设你有如Figure 13-8 所示的模型 Figure 13-8. A model with an Associat ...

随机推荐

  1. centos7 安装maven

    进入指定目录 cd /usr/local/src/   下载maven 包 wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.1.1/bin ...

  2. C语言编程常见技巧(问题???)

    本文章根据<算法竞赛入门经典(第二版)>一书整理... 第一章 程序设计入门 printf 语句控制输出小数位数或总长度 printf("%.3f\n",8.0/5.0 ...

  3. PC平台在Unity3D中播放硬盘ogg,mp3,wav文件

    Unity3D PC平台本身是支持直接用www读取本地ogg,wav的,但是并不能读取byte[],字节数组格式,这对用习惯了bass,fmod的人来说有点不方便. 搜了一圈发现了一个C#的音频库叫N ...

  4. 2018年2月19日我的java学习

    2019/2/18 星期一今天学习了Java 中的面向对象思想主要学习了类 构造器等在学习修饰属性的过程中,有4点必须牢记前提是理解类的各种关系 类中有5种关系 本身 同包类 同包继承子类 不同包继承 ...

  5. TortoiseSVN与TortoiseGit

    TortoiseSVN与TortoiseGit 功能:版本控制+备份处理 差异:SVN二段式,没有中间存储点,直接提交后到达了远程存储点:要想对本地的修改进行记录,必须要与SVN服务器进行通讯,无法只 ...

  6. 7.ASP.NET MVC 5.0中的Routing【路由】

    大家好,这一篇向大家介绍ASP.NET MVC路由机制.[PS:上一篇-->6. ASP.NET MVC 5.0中的HTML Helpers[HTML帮助类] ] 路由是一个模式匹配系统,它确保 ...

  7. Apktool下载与安装 windows环境

    Apktool 下载与安装 百度网盘地址:https://pan.baidu.com/s/1slQBMOl  (apktool 2.2.4版本) 更多版本可以从官网https://ibotpeache ...

  8. 任务调度及远端管理(基于Quartz.net)

    这篇文章我们来了解一些项目中的一个很重要的功能:任务调度 可能有些同学还不了解这个,其实简单点说任务调度与数据库中的Job是很相似的东西 只不过是运行的物理位置与管理方式有点不一样,从功能上来说我觉得 ...

  9. FTPClient 中 FTPClient.changeWorkingDirectory(filePath) 代码一直返回 false

    FTP文件下载需要的jar包: commons-net-2.0.jar  有时可能还需要:jakarta-oro.jar 参考:FTPClient参考文档 这里记录下我碰到的问题: 刚开始我的账号和密 ...

  10. Testing - 软件测试知识梳理 - 测试流程

    测试存在于各个阶段: 需求测试--->单元测试--->集成测试--->系统测试--->性能测试--->用户测试--->回归测试 需求测试 完整性&正确性 一 ...