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. python 模拟windows键盘按键的封装

    代码:在执行的时候,把光标放在指定的地方,在此例中,点击运行后把光标放到结果区域,粘贴的时候是粘贴到光标所在的问题,如过是运行脚本在web元素输入框中输入的话,不能移动光标到其他位置 #encodin ...

  2. bootstrap实战教程

    bootstrap实战教程 bootstrap介绍 简介 Bootstrap 是最受欢迎的 HTML.CSS 和 JS 框架,用于开发响应式布局.移动设备优先的 WEB 项目.全球数以百万计的网站都是 ...

  3. 代码静态扫描工具sonar

    一.SonarQube整体介绍 SonarQube为静态代码检查工具,采用B/S架构,帮助检查代码缺陷,改善代码质量,提高开发速度,通过插件形式,可以支持Java.C.C++.JavaScripe等等 ...

  4. 20145333茹翔 Exp5 MSF基础应用

    20145333茹翔 Exp5 MSF基础应用 实验内容 掌握metasploit的基本应用方式,掌握常用的三种攻击方式的思路. 一个主动攻击,如ms08_067; 一个针对浏览器的攻击,如ms11_ ...

  5. 20135234mqy-——信息安全系统设计基础第五周学习总结

    程序的机器级表示 3.1 intel处理器系列俗称x86,经历了一开始个长期的,不断进化的发展过程. 开始时它是第一代单芯片,16位微处理器之一,由于当时集成电路技术水性有限,其中做了很多妥协,此后, ...

  6. Java JDK8 学习笔记 1-3章

    第一章 Java平台概论 1.了解Java的前世今生,Java SE.Java EE.JavaME三大平台.其中Java SE主要由四部分JVM.JRE.JDK与Java语言,JDK包含JRE,JRE ...

  7. Ansible 入门指南 - 常用模块

    介绍 module 文档: 官宣-模块分类的索引 官宣-全部模块的索引 在playbook脚本中,tasks 中的每一个 action都是对 module的一次调用.在每个 action中: 冒号前面 ...

  8. javaweb 实战_1

    购物车项目 Primary SQL语句 product create table product ( id ) default null, name varchar() default null, p ...

  9. Codeforces Round #530 (Div. 1)

    A - Sum in the tree 就是贪心选尽量让上面的点权尽量大,那么对于偶数层的点,其到根节点的和即为所有儿子中的最大值. #include<bits/stdc++.h> usi ...

  10. Java异常类复习总结

    个人理解先行: 异常类是当在程序出现问题时抛出的一个警告.提示你程序设计或者代码有存在错误的地方. 异常类和Error都继承自Throwable, Throwable继承自Object类. Runti ...