一、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. Qt源码解析之-从PIMPL机制到d指针

    一.PIMPL机制 PIMPL ,即Private Implementation,作用是,实现 私有化,力图使得头文件对改变不透明,以达到解耦的目的 pimpl 用法背后的思想是把客户与所有关于类的私 ...

  2. train loss与test loss结果分析/loss不下降

    train loss与test loss结果分析 train loss 不断下降,test loss不断下降,说明网络仍在学习; train loss 不断下降,test loss趋于不变,说明网络过 ...

  3. 第三家面试过程,及导出elcel的进一步小结。(8月11号 周五)

    今天收到第三家公司的面试通知,面试地址也在民治附近,面试时间是上午十点.今早又失眠了,感觉到这边这么几天,总是天天失眠,晚上睡不好白天瞌睡睡不着,估计还需要些许时间的适应,早上七点多我整理好面试需要准 ...

  4. Android广播机制(1)

    目录 简介 发送广播和接收广播方式 广播类型 接收系统广播 动态注册监听网络变化 步骤 优化 静态注册实现开机启动 步骤 注意 简介 就是因为安卓中的每个应用程序都可以对自己感兴趣的广播进行注册,这样 ...

  5. C# 获取从1月至12月的月初时间和月末时间

    public IActionResult GetMonthData() { var dataList = new List<object>(); var currentMonth = Da ...

  6. Mysql 常用函数(14)- lower 函数

    Mysql常用函数的汇总,可看下面系列文章 https://www.cnblogs.com/poloyy/category/1765164.html lower 的作用 将所有字符串更改为小写,然后返 ...

  7. PHP带标签的字符串去除标签,计算字符串长度的两种格式,截取字符串

    $str = "<p>看地方撒地方<i>fdsafsdfsd</i><img src="/static/img/fdsf.jpg" ...

  8. struts2 自定义tag标签

    在项目中可能有很多相同的jsp页面表示功能,这时可以使用自定义的tag进行定义,渐少重复的工作量便于日后维护! 下面就基于struts2进行自定义标签的定义与实现: 首先:自定义类MyTag继承str ...

  9. IOS真机测试(已拥有个人开发者证书)

    创建真机调试证书并进行真机测试 步骤1 在启动台中点击其他,找到钥匙串访问. 步骤2 在打开的界面中点击右边的系统根证书,然后点击左上角的钥匙串访问,然后是证书助理,最后点击从证书颁发机构申请证书. ...

  10. Redux:异步操作

    最近状态不太好,学习redux的异步操作花的时间比想象的多,这里尽量清晰简要的表述一下在redux中怎么实现异步操作. 先回顾一下同步操作: 我们用redux执行同步的时候,都是先发起一个dispat ...