一、LINQ概述与查询语法

二、LINQ方法语法基础(重点)

三、LINQ聚合操作与元素操作(重点)

四、数据类型转换(重点)

一、LINQ概述与查询语法

1、LINQ(Language Integrated Query,语言集成查询)提供了一种跨数据源和数据格式查询的统一模型。

2、LINQ的组成:

1)LINQ To Objects:查询集合对象

2)LINQ enabled ADO.NET:查询数据库

 LINQ To DataSet

 LINQ To SQL

 LINQ To Entities -> EntityFramework

3)LINQ To XML:查询XML文档

3、LINQ的语法:

from [type] id in source

[join [type] id in source on expr equals expr [into subGroup]]

[from [type] id in source | let id = expr | where condition]

[orderby ordering,ordering,ordering…]

select expr | group expr by key

[into id query]

注意:只有实现了IEnumerable接口的数据源,才能执行相关的LINQ操作。

4、LINQ查询的步骤:

1)创建数据源:

int[] numbers = new int[7] { 0, 1, 2, 3, 4, 5, 6 };

2)定义查询:

var numQuery =

from num in numbers

where (num % 2) == 0

select num;

3)执行查询:

 foreach (int num in numQuery)

{

Console.Write("{0,1} ", num);

}

 聚合操作

 元素操作

 类型转换

二、LINQ方法语法基础

1、方法语法的是通过扩展方法和Lambda表达式来创建查询。

查询语法和方法语法在语义上是相同的,但是大多数情况下发现查询语法更简单且更易于阅读;并且某些查询必须表示为方法调用(比如聚合操作)。

2、Where(筛选操作)、OrderBy(排序操作)、Select(投影操作)三个常用扩展方法的签名:

1)public static IEnumerable Where

(this IEnumerable source, Func<TSource, bool> predicate)

2)public static IEnumerable OrderBy<TSource, TKey>

(this IEnumerable source, Func<TSource, TKey> keySelector)

3)public static IEnumerable Select<TSource, TResult>

(this IEnumerable source, Func<TSource, TResult> selector)

三、LINQ聚合操作与元素操作

1、聚合操作

1)Count:对集合中的元素计数,以及对集合中满足条件的元素计数

2)LongCount:与Count相同,当Count中元索的个数超过int类型值的上限时使用

3)Max:确定集合中的最大值

4)Min:确定集合中的最小值

5)Sum:计算集合中值的总和

6)Average:计算集合中值的平均值

2、元素操作

1)ElementAt:返回集合中指定索引处的元素

2)ElementAtOrDefault:返回集合中指定索引处的元素,如果索引超出范围则返回默认值

3)First:返回集合中的第一个元素或满足条件的第一个元素

4)FirstOrDefault:返回集合中的第一个元素或满足条件的第一个元素,如果没有则返回默认值

5)Last:返回集合中的最后一个元素或满足条件的最后一个元素

6)LastOrDefault:返回集合中的最后一个元素或满足条件的最后一个元素,如果没有则返回默认值

7)Single:返回集合中的唯一元素或满足条件的唯一元素

8)SingleOrDefault:返回集合中的唯一元素或满足条件的唯一元素,如果没有,则返回默认值

四、数据类型转换

1、类型转换

1)ToList:将集合转换为List

2)ToArray:将集合转换为数组

3)ToDictionary:根据键选择器函数将元索放入Dictionary<TKey,Tvalue>中

4)ToLookup:根据键选择器函数将元索放入Lookup<Tkey,Telement>中

5)AsEnumerable:将一个序列转换为IEnumerable集合

6)AsQueryable:将IEnumerable转换为IQueryable

7)Cast:将集合的元素强制转换为指定类型

8)OfType:根据值强制转换为指定类型的能力筛选值

Linq查询案例

EntityFramework数据持久化 Linq介绍的更多相关文章

  1. EntityFramework数据持久化 Linq语法应用

    Linq基础语法 LINQ概述 LINQ(Language Integrated Query,语言集成查询)提供了一种跨数据源和数据格式查询的统一模型. LINQ的组成: LINQ To Object ...

  2. 几种.NET平台数据持久化框架介绍

    原文连接:http://yuxnet.blog.163.com/blog/static/164863495201131532223362/ 在.NET平台下,关于数据持久层框架非常多,本文主要对如下几 ...

  3. MVC之实体框架(数据持久化框架)EntityFrameWork(EF)

    EF - EntityFrameWork 中文名:实体框架(数据持久化框架) 1.使用EF查询(Linq to EF) 1.1使用标准查询运算符来查询 OumindBlogEntities db = ...

  4. ios数据持久化--CoreData框架的介绍和使用

    1.Core Data 是数据持久化存储的最佳方式 2.数据最终的存储类型可以是:SQLite数据库,XML,二进制,内存里,或自定义数据类型 在Mac OS X 10.5Leopard及以后的版本中 ...

  5. Code First开发系列之管理数据库创建,填充种子数据以及LINQ操作详解

    返回<8天掌握EF的Code First开发>总目录 本篇目录 管理数据库创建 管理数据库连接 管理数据库初始化 填充种子数据 LINQ to Entities详解 什么是LINQ to ...

  6. 【开源】OSharp框架解说系列(5.1):EntityFramework数据层设计

    OSharp是什么? OSharp是个快速开发框架,但不是一个大而全的包罗万象的框架,严格的说,OSharp中什么都没有实现.与其他大而全的框架最大的不同点,就是OSharp只做抽象封装,不做实现.依 ...

  7. iOS 数据持久化(扩展知识:模糊背景效果和密码保护功能)

    本篇随笔除了介绍 iOS 数据持久化知识之外,还贯穿了以下内容: (1)自定义 TableView,结合 block 从 ViewController 中分离出 View,轻 ViewControll ...

  8. 认证授权:IdentityServer4 - 数据持久化

    前言: 前面的文章中IdentityServer4 配置内容都存储到内存中,本篇文章开始把配置信息存储到数据库中:本篇文章继续基于github的代码来实现配置数据持久化到MySQL中 一.基于EFCo ...

  9. IdentityServer4系列 | 支持数据持久化

    一.前言 在前面的篇章介绍中,一些基础配置如API资源.客户端资源等数据以及使用过程中发放的令牌等操作数据,我们都是通过将操作数据和配置数据存储在内存中进行实现的,而在实际开发生产中,我们需要考虑如何 ...

随机推荐

  1. python学习之组成字符串的两种方式

    第一种就是加法,比如 a ='张三' b = '李四' 那么print c =a+b 例如之前提到的 或者数值转换成字符串的 num  = 100 str(num) 其他参照表格中的转换即可 2.组成 ...

  2. 201771010113 李婷华 《面向对象程序设计(Java)》第八周总结

    一.理论知识部分 1.Java为了克服单继承的缺点,Java使用了接口,一个类可以实现一个或多个接口. 2.在Java程序设计语言中,接口不是类,而是对类的一组需求描述,由常量和一组抽象方法组成.接口 ...

  3. 【Hadoop离线基础总结】Apache Hadoop的三种运行环境介绍及standAlone环境搭建

    Apache Hadoop的三种运行环境介绍及standAlone环境搭建 三种运行环境 standAlone环境 单机版的hadoop运行环境 伪分布式环境 主节点都在一台机器上,从节点分开到其他机 ...

  4. 一、Spring的控制反转(IOC)学习

    一.控制反转 1.什么是控制反转? 控制反转(Inversion of Control,缩写为IoC),是面向对象中的一种设计原则,可以用来减低计算机代码之间的耦合度.其中最常见的方式叫做依赖注入(D ...

  5. mongodb cluster

    假设三台机器,ip分别为192.168.1.10,192.168.1.11,192.168.1.12,分别在每台电脑上下载并解压mongodb,关闭防火墙或者开放防火墙端口 一.安装shard 配置文 ...

  6. 利用Asp.net和Sql Server实现留言板功能

    本教程设及到:使用SQL Server查询分析器创建数据库:SQL查询语句常用的一些属性值:触发器创建和使用:存储过程的创建,ASP使用存储过程. 正文: 一.创建数据库: 创建一个feedback数 ...

  7. 多线程测试时的辅助类--CountDownLatch

    多线程时,很多时候由于mian线程与多线程结束时间不可控,造成无法测试 辅助测试类---CountDownLatch 我看的视频教程匿名内部类无法使用外部的变量,所以CountDownLatch定义为 ...

  8. [hdu2594]kmp水题

    题意:求最长的a的前缀同时满足是b的后缀,把a,b连在一起,kmp跑一下,迭代next直到长度小于等于a,b长度的最小值为止,即为答案. #pragma comment(linker, "/ ...

  9. 基于R语言的航空公司客户价值分析

    分析航空公司现状 1.行业内竞争 民航的竞争除了三大航空公司之间的竞争之外,还将加入新崛起的各类小型航空公司.民营航空公司,甚至国外航空巨头.航空产品生产过剩,产品同质化特征愈加明显,于是航空公司从价 ...

  10. 安卓APP承载网页(WebView)

    安卓APP自身如何打开网页,如何制作一个简单的浏览器,WebView在其中将是一个重要的角色.WebView是一个基于WebKit引擎.展现Web页面的控件. Webview 是一个基于webkit引 ...