
.Net中Linq to sql常用功能介绍
本文最后更新于 2024-11-16,文章已经超过3个月未更新,无法保证其有效性,各位大佬请自由斟酌。
前言
LINQ to SQL 是 .NET 中运用我这里就不废话了,直接进入主题,所以这期文章没有前言。
是的,你没看错,因为我懒,要写这个,我还得去百度一下文章来复制黏贴,不如你们直接去吧!
准备工作
为了方便大家理解,这里先假设有这么一张表:Product
Select/Distinct 查询
在查询表达式中,select
操作类似于 SQL 命令中的 select
,用于选择和返回查询结果。但与 SQL 不同,查询表达式的 select
通常位于表达式的末尾,用于定义最终返回的变量(即查询的结果),并具有延迟执行的特点。
Select :选择特定列的数据或整个对象。
Distinct :获取唯一值,去除重复项。
Select
/Distinct
操作提供了以下九种形式:
简单形式:直接选择查询结果,不做任何处理。
简单用法:
匿名类型形式:返回匿名类型的数据。
条件形式:根据条件选择特定的数据。
指定类型形式:将查询结果转换为指定的类型。
筛选形式:根据条件筛选和返回部分数据。
整形类型形式:对结果进行整形或转换。
嵌套类型形式:选择的结果为嵌套类型。
本地方法调用形式:在查询中调用本地方法来处理数据。
Distinct 形式:去除重复数据并返回唯一值的集合。
Count 计数
作用:统计满足条件的数据量。
示例:统计库存大于 100 的商品数量。
Sum 求和
作用:计算特定列的总和。
示例:计算所有商品的总库存量。
Min 最小值
目的:找到特定列的最小值。
示例:获取最低价格的商品价格。
Max 最大值
目的:找到特定列的最大值。
示例:获取最高价格的商品价格。
Avg 平均值
目的:计算特定列的平均值。
示例:计算所有商品的平均价格。
Where 条件过滤
目的:根据特定条件筛选数据。
示例:查询库存大于 50 且价格低于 100 的商品。
OrderBy、OrderByDescending、ThenBy、ThenByDescending 排序
目的:对查询结果进行升序( OrderBy
)或降序排序( OrderByDescending
)。
示例:按价格升序排序,按库存降序排序。
Take、Skip 分页
目的:分页处理数据,或提取前几条记录。
示例:获取价格最低的前 5 个商品。
注意:Take()
获取指定数量的记录,Skip()
用于跳过指定数量的记录,是数量、数量、数量,重要的事情说三遍,不是页码和每页最大条数,需要自行计算,适合分页场景。
如果你需要使用页码与每页最大条数,请使用以下这种方式写一个扩展
First 、FirstOrDefault
目的:返回符合条件的第一条记录,找不到记录时,FirstOrDefault 返回 null。
示例:获取库存大于 50 的第一件商品。
注意:First()
和 FirstOrDefault()
都能返回第一条匹配记录,First()
找不到记录时会抛出异常,而 FirstOrDefault()
则返回 null
。
Single、SingleOrDefault
目的:返回唯一的一条记录,找不到或找到多条时抛出异常。SingleOrDefault 在找不到记录时返回 null。
示例:获取 ID 为 1 的商品。
Any 匹配
目的:检查是否有符合条件的记录存在。
示例:检查是否存在价格超过 500 的商品。
注意:Single
和 SingleOrDefault
用于确保只有一条记录匹配条件,否则抛出异常或返回 null
,所以一般用来匹配主键或者列是唯一值的数据,亦或者,你能确保数据是唯一的。
All 匹配
目的:检查是否所有记录都满足特定条件。
示例:检查是否所有商品库存都大于 10。
Contains 包含
目的:判断集合中是否包含指定的值。
示例:判断类别列表中是否包含“Electronics”类别。
GroupBy 分组
目的:按某个字段分组。
示例:按类别分组,统计每个类别中的商品数量。
Join 关联
目的:合并两个数据集,类似于 SQL 的 JOIN 操作。
示例:将 Product 和 Category 表连接,显示每个商品的类别名称(假设我们有 Category 表)。
- 感谢你赐予我前进的力量
本网站的原创文章部分资源内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系博主邮箱:zzyo.yj@outlook.com 进行删除处理
本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向博主举报
声明:版权所有,违者必究 | 如未注明,均为原创 | 本网站采用CC BY-NC-SA 4.0 协议进行授权
转载:转载请注明原文链接 - Lycoris