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. no-siteapp 和 no-transform

    简单的说,是禁止转码 . 举个通俗的例子. 你建了一栋房子(网站),百度说我给你做个大门,但是大门上要有我的广告 你不愿意,就建立了一条路叫no-transform 别人去你家走这条路就行了 后来百度 ...

  2. LoadRunner11支持的浏览器小结-Loadrunner11打不开IE浏览器的问题

    http://www.cnblogs.com/qmfsun/p/4807237.html

  3. python yield yield from

    1.可迭代对象 具备可迭代的能力,即enumerable,在python中指的是可以通过for-in去逐个访问元素的一些对象,比如元组tuple,列表list,字符串string,文件对象file等. ...

  4. Linux配置自动时间同步

    Linux配置自动时间同步时间同步命令:ntpdate -s time.windows.com自动时间同步:让linux从time.windows.com自动同步时间vi /etc/crontab加上 ...

  5. web前端----JavaScript的DOM(三)

    一.JS中for循环遍历测试 for循环遍历有两种 第一种:是有条件的那种,例如    for(var i = 0;i<ele.length;i++){} 第二种:for (var i in l ...

  6. Python Web学习笔记之SSL,TLS,HTTPS

    一. SSL 1. SSL简介 SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持.SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可 ...

  7. 解决mysql的Too many connections

    解决: /etc/my.cnf vim编辑 添加 max_connections= wait_timeout= 然后执行code service mysqld reload service mysql ...

  8. xdebug安装方法

    打开网址:https://xdebug.org/wizard.php 把phpinfo页面中输出的所有内容复制过来,粘贴在此处点下面那个按钮,系统会分析出你需要下载哪个版本的x-debug,还会告诉你 ...

  9. 20145319 《网络渗透》web基础

    20145319 <网络渗透>web基础 实验要求 掌握网页编程的基本知识 html语法 javascript php 前端,后台,数据库之间如何建立连接 掌握数据库的使用 mysql的启 ...

  10. Go第八篇之包的使用

    Go 语言的源码复用建立在包(package)基础之上.Go 语言的入口 main() 函数所在的包(package)叫 main,main 包想要引用别的代码,必须同样以包的方式进行引用,本章内容将 ...