EntityFramework数据持久化 Linq介绍
一、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:根据值强制转换为指定类型的能力筛选值
EntityFramework数据持久化 Linq介绍的更多相关文章
- EntityFramework数据持久化 Linq语法应用
Linq基础语法 LINQ概述 LINQ(Language Integrated Query,语言集成查询)提供了一种跨数据源和数据格式查询的统一模型. LINQ的组成: LINQ To Object ...
- 几种.NET平台数据持久化框架介绍
原文连接:http://yuxnet.blog.163.com/blog/static/164863495201131532223362/ 在.NET平台下,关于数据持久层框架非常多,本文主要对如下几 ...
- MVC之实体框架(数据持久化框架)EntityFrameWork(EF)
EF - EntityFrameWork 中文名:实体框架(数据持久化框架) 1.使用EF查询(Linq to EF) 1.1使用标准查询运算符来查询 OumindBlogEntities db = ...
- ios数据持久化--CoreData框架的介绍和使用
1.Core Data 是数据持久化存储的最佳方式 2.数据最终的存储类型可以是:SQLite数据库,XML,二进制,内存里,或自定义数据类型 在Mac OS X 10.5Leopard及以后的版本中 ...
- Code First开发系列之管理数据库创建,填充种子数据以及LINQ操作详解
返回<8天掌握EF的Code First开发>总目录 本篇目录 管理数据库创建 管理数据库连接 管理数据库初始化 填充种子数据 LINQ to Entities详解 什么是LINQ to ...
- 【开源】OSharp框架解说系列(5.1):EntityFramework数据层设计
OSharp是什么? OSharp是个快速开发框架,但不是一个大而全的包罗万象的框架,严格的说,OSharp中什么都没有实现.与其他大而全的框架最大的不同点,就是OSharp只做抽象封装,不做实现.依 ...
- iOS 数据持久化(扩展知识:模糊背景效果和密码保护功能)
本篇随笔除了介绍 iOS 数据持久化知识之外,还贯穿了以下内容: (1)自定义 TableView,结合 block 从 ViewController 中分离出 View,轻 ViewControll ...
- 认证授权:IdentityServer4 - 数据持久化
前言: 前面的文章中IdentityServer4 配置内容都存储到内存中,本篇文章开始把配置信息存储到数据库中:本篇文章继续基于github的代码来实现配置数据持久化到MySQL中 一.基于EFCo ...
- IdentityServer4系列 | 支持数据持久化
一.前言 在前面的篇章介绍中,一些基础配置如API资源.客户端资源等数据以及使用过程中发放的令牌等操作数据,我们都是通过将操作数据和配置数据存储在内存中进行实现的,而在实际开发生产中,我们需要考虑如何 ...
随机推荐
- python学习之组成字符串的两种方式
第一种就是加法,比如 a ='张三' b = '李四' 那么print c =a+b 例如之前提到的 或者数值转换成字符串的 num = 100 str(num) 其他参照表格中的转换即可 2.组成 ...
- 201771010113 李婷华 《面向对象程序设计(Java)》第八周总结
一.理论知识部分 1.Java为了克服单继承的缺点,Java使用了接口,一个类可以实现一个或多个接口. 2.在Java程序设计语言中,接口不是类,而是对类的一组需求描述,由常量和一组抽象方法组成.接口 ...
- 【Hadoop离线基础总结】Apache Hadoop的三种运行环境介绍及standAlone环境搭建
Apache Hadoop的三种运行环境介绍及standAlone环境搭建 三种运行环境 standAlone环境 单机版的hadoop运行环境 伪分布式环境 主节点都在一台机器上,从节点分开到其他机 ...
- 一、Spring的控制反转(IOC)学习
一.控制反转 1.什么是控制反转? 控制反转(Inversion of Control,缩写为IoC),是面向对象中的一种设计原则,可以用来减低计算机代码之间的耦合度.其中最常见的方式叫做依赖注入(D ...
- mongodb cluster
假设三台机器,ip分别为192.168.1.10,192.168.1.11,192.168.1.12,分别在每台电脑上下载并解压mongodb,关闭防火墙或者开放防火墙端口 一.安装shard 配置文 ...
- 利用Asp.net和Sql Server实现留言板功能
本教程设及到:使用SQL Server查询分析器创建数据库:SQL查询语句常用的一些属性值:触发器创建和使用:存储过程的创建,ASP使用存储过程. 正文: 一.创建数据库: 创建一个feedback数 ...
- 多线程测试时的辅助类--CountDownLatch
多线程时,很多时候由于mian线程与多线程结束时间不可控,造成无法测试 辅助测试类---CountDownLatch 我看的视频教程匿名内部类无法使用外部的变量,所以CountDownLatch定义为 ...
- [hdu2594]kmp水题
题意:求最长的a的前缀同时满足是b的后缀,把a,b连在一起,kmp跑一下,迭代next直到长度小于等于a,b长度的最小值为止,即为答案. #pragma comment(linker, "/ ...
- 基于R语言的航空公司客户价值分析
分析航空公司现状 1.行业内竞争 民航的竞争除了三大航空公司之间的竞争之外,还将加入新崛起的各类小型航空公司.民营航空公司,甚至国外航空巨头.航空产品生产过剩,产品同质化特征愈加明显,于是航空公司从价 ...
- 安卓APP承载网页(WebView)
安卓APP自身如何打开网页,如何制作一个简单的浏览器,WebView在其中将是一个重要的角色.WebView是一个基于WebKit引擎.展现Web页面的控件. Webview 是一个基于webkit引 ...