•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. POJ1862 Stripies 贪心 B

    POJ 1862 Stripies https://vjudge.net/problem/POJ-1862 题目:     Our chemical biologists have invented ...

  2. hadoop 有那些发行版本

    hadoop发行版本 1. apache hadoop  http://hadoop.apache.org/ 2. cloudera hadoop(CDH) https://www.cloudera. ...

  3. jquery中siblings方法配合什么方法一起使用

    siblings() 获得匹配集合中每个元素的同胞,通过选择器进行筛选是可选的.接下来通过本文给大家介绍jQuery siblings()用法实例详解,需要的朋友参考下吧 siblings() 获得匹 ...

  4. 获取sql 时间时分秒

    select DATE_FORMAT(now(),'%Y-%m-%d %T') from dual;  年月日时分秒 select DATE_FORMAT(now(),'%T') from dual; ...

  5. Eclipse进行远程调试(Tomcat远程调试)

    1.配置tomcat Linxu系统: tomcat/bin/catalina.sh或者startup.sh开始处中增加如下内容: declare -x CATALINA_OPTS="-Xd ...

  6. linux 修改用户密码的几种方法

    1.passwd 命令,手动修改: [root@localhost testuser]# passwd testuser Changing password for user testuser. Ne ...

  7. Jedis 操作 Redis 工具类

    配置类 pom.xml pom.xml 里配置依赖 <dependency> <groupId>redis.clients</groupId> <artifa ...

  8. C++随机数引擎

    C++的随机数引擎有以下几个要点需要注意:  1.随机数发生器使用同一种子会生成相同序列的随机数序列 2.为了让程序每次运行都会生成不同的随机结果,我们可以使用 time(0) 产生一个随机数种子 3 ...

  9. [git] commit 相关的操作

    本地仓库状态相关的操作 1.  git  commit 将从上次提交后到现在这段时间内,暂存区所有的变化提交到版本库中: git  commit  -m '此次提交操作的简要说明(单引号括起来)' c ...

  10. 彻底理解Java中的基本数据类型转换(自动、强制、提升)

    说基本数据类型转换之前,先了解下 Java 中的 8 种基本数据类型,以及它们的占内存的容量大小和表示的范围,如下图所示. 重新温故了下原始数据类型,现在来解释下它们之间的转换关系. 自动类型转换 自 ...