EntityFramework数据持久化 第二章 Linq查询

到现在,200篇博客达成,未来要继续努力!!哈哈哈哈哈哈~~

一、LINQ概述与查询语法

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

2、LINQ的组成:

1LINQ To Objects:查询集合对象
2LINQ enabled ADO.NET:查询数据库

	LINQ To DataSet
	LINQ To SQL
*   LINQ To Entities -> EntityFramework

3LINQ 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(投影操作)三个常用扩展方法的签名:

1public static IEnumerable<TSource> Where<TSource>
            (this IEnumerable<TSource> source,
            Func<TSource, bool> predicate)
            
2public static IEnumerable<TSource> OrderBy<TSource, TKey>
            (this IEnumerable<TSource> source, 
            Func<TSource, TKey> keySelector)
            
3public static IEnumerable<TResult> Select<TSource, TResult>
            (this IEnumerable<TSource> 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)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:根据值强制转换为指定类型的能力筛选值

小剧场:可不可以,闭上眼睛。Can you close you eyes.

发布了200 篇原创文章 · 获赞 149 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_43771695/article/details/105411181