•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. 阅读笔记4 我是一只IT小小鸟

    经过一周连续三四天八小时以上坐在电脑前敲代码的“折磨”,去看看其他经受这些折磨的人的感受.这次读书笔记变成了逗比风,因为前几周认认真真记下书里写的重点内容,然后把学习的内容认真的记录下来的笔记被老师助 ...

  2. ubuntu16.04安装最新版docker、docker-compose、docker-machine

    安装前说明: 本文将介绍在ubuntu16.04系统下安装和升级docker.docker-compose.docker-machine. docker:有两个版本:docker-ce(社区版)和do ...

  3. vs2008快捷键一览表

    Ctrl+E,D ----             格式化全部代码 Ctrl+K,F ----             格式化选中的代码 CTRL + SHIFT + B          生成解决方 ...

  4. [BOT]自定义ViewPagerStripIndicator

    效果图 app中下面这样的控件很常见,像默认的TabHost表现上不够灵活,下面就简单写一个可以结合ViewPager切换内容显示,提供底部"滑动条"指示所显示页签的效果. 这里控 ...

  5. Delphi - TDateTimePicker使用注意问题

    TDateTimePicker使用时候,如果想获取到修改后的值,必须注Kind和time属性必须对应! 1,时间设置: treatmentTime1DTPicker.Kind := dtkTime; ...

  6. php 从2维数组组合为四维数组分析(项目中前台侧边栏导航三级分类显示)

    foreach函数(循环函数)内嵌套循环函数时,当内层完全循环完后,才会向上一级循环 数组要注意问题 array_merge----合并一个或多个数组 将一个或多个数组的单元合并起来,一个数组中的值附 ...

  7. Android 追加写入文件的三种方法

    一.使用FileOutputStream 使用FileOutputStream,在构造FileOutputStream时,把第二个参数设为true public static void method1 ...

  8. Failed to acquire lock on file .lock in /tmp/kafka-logs. A Kafka instance in another process or thread is using this directory.

    1. 问题现象 启动 kafka 时报错:Failed to acquire lock on file .lock in /tmp/kafka-logs. A Kafka instance in an ...

  9. [git] 文件操作

    文件操作 1.  git  add 1.1 将未被git管理的文件添加到暂存区 一次可添加多个文件 文件夹,中间用空格隔开 git  add  文件/文件夹  文件/文件夹 再次执行 git  sta ...

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

    理解 目的 测试就是要找到关键信息,有关项目和产品的关键决策都是根据这些信息做出. 对产品质量做出总体评估. 找出并报告团队所有可能会对产品价值产生消极影响的问题(但并不意味着能发现所有问题). 重心 ...