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 或 IQueryable 接口的对象都可使用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是什么?的更多相关文章

  1. NLP+语篇分析(五)︱中文语篇分析研究现状(CIPS2016)

    摘录自:CIPS2016 中文信息处理报告<第三章 语篇分析研究进展.现状及趋势>P21 CIPS2016 中文信息处理报告下载链接:http://cips-upload.bj.bcebo ...

  2. 如何实现Http请求报头的自动转发[应用篇]

    如今的应用部署逐渐向微服务化发展,导致一个完整的事务往往会跨越很多的应用或服务,出于分布式链路跟踪的需要,我们往往将从上游服务获得的跟踪请求报头无脑地向下游服务进行转发.本文介绍的这个名为Header ...

  3. cvpr2018(转发一篇头条)

    CVPR 2018:腾讯图像去模糊.自动人像操纵最新研究 新智元 2018-05-29 14:13:04 新智元报道 来源:腾讯优图 编辑:江磊.克雷格 [新智元导读]即将在6月美国盐湖城举行的计算机 ...

  4. 转发一篇能看懂的关于ingress的说明

    最近发现好多人问 Ingress,同时一直也没去用 Nginx 的 Ingress,索性鼓捣了一把,发现跟原来确实有了点变化,在这里写篇文章记录一下 https://mritd.me/2017/03/ ...

  5. .NETCoreCSharp 中级篇2-3 Linq简介

    .NETCoreCSharp 中级篇2-3 本节内容为Linq及其拓展方法.Linq中表达式树的使用 简介 语言集成查询(LINQ)是一系列直接将查询功能集成到C#语言的技术统称.数据查询历来都表示为 ...

  6. lxd-启动篇分析

    lxd是什么:lxd是基于lxc构筑的容器管理进程,提供镜像,网络,存储,以及容器的能力,对外暴漏restfull API.其与docker的区别是docker更切近与app container,以应 ...

  7. 转发一篇好文:36氪翻译自medium的文章: 读书没有 KPI:为什么坚持“一年读 100 本书”没用?

    你只是为了达成所谓的数量目标而读书. 编者按:读书本是一项安静.缓慢的活动,但随着现代社会节奏的加快,信息技术的广泛普及,读书这一行为模式也开始发生了变化.越来越多的人开始碎片化阅读,并且越来越多的文 ...

  8. 第三篇-分析日志和sensor-data中的数据结构

    分析日志和sensor-data数据结构 该文章提供web端思路,ios和android端思路不提供,api也已经下线,本文也不提供任何可执行代码.有更多疑问欢迎查看github代码 协议 授权协议: ...

  9. MySQL高级篇 | 分析sql性能

    在应用的的开发过程中,由于初期数据量小,开发人员写 SQL 语句时更重视功能上的实现,但是当应用系统正式上线后,随着生产数据量的急剧增长,很多 SQL 语句开始逐渐显露出性能问题,对生产的影响也越来越 ...

随机推荐

  1. uva11107 后缀数组

    题意给了n个串 然后计算 这些串中的子串在大于1/2的串中出现 求出这个串的最长长度. 将这些串用一个每出现的不同的字符拼起来 ,然后二分找lcp #include <iostream> ...

  2. 《算法C语言实现》————三道题目

    1.对于N = 10,100和1000,记录你的运行环境中分别运行一下程序所花费的时间.(用python) import datetime global a a = 0 def time_1(s): ...

  3. nginx的权限问题(Permission denied)解决办法

    nginx的权限问题(Permission denied)解决办法 一个nginx带多个tomcat集群环境,老是报如下错误:failed (13: Permission denied) while ...

  4. C/C++之static函数与普通函数

    全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量.全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式.这两者在存储方式上并无不同.这两者的区别虽在于非静态全局变量 ...

  5. python之路----继承的抽象类和接口类

    抽象类与接口类 接口类 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了一些接口名(就是函数 ...

  6. Python之路----递归函数

    1.小练一下 用map来处理字符串列表,把列表中所有人都变成sb,比方alex_sb name=['alex','wupeiqi','yuanhao','nezha'] # def func(item ...

  7. maven nexus deploy方式以及相关注意事项(增加eclipse执行maven deploy)

    以前公司都是配管负责管理jar的,现在没有专职配管了,得自己部署到deploy上供使用.总的来说,jar部署到nexus上有两种方式: 1.直接登录nexus控制台进行上传,如下: 但是,某些仓库可能 ...

  8. 编译时错误之 error C2338: tuple_element index out of bounds

    part 1 编译器 vs2015 VC++. 完整的错误信息粘贴如下: d:\program files (x86)\microsoft visual studio 14.0\vc\include\ ...

  9. 06: linux中find查找命令总结

    1.在当前目录下查找以txt结尾的文件 find . -name "*.txt" 2.在当前目录下查找所有以字母开头的文件 find . -name "[a-z]*&qu ...

  10. Node.js读取文件内容

    原文链接:http://blog.csdn.net/zk437092645/article/details/9231787 Node.js读取文件内容包括同步和异步两种方式. 1.同步读取,调用的是r ...