LINQ详解及汇总
LINQ(Language Integrated Query)是微软的一项技术,允许开发者以一种简洁的方式查询和操作数据,支持多种数据源,包括对象、数据库、XML和数据集。LINQ定义了约40个查询操作符,如select、from、in、where以及order by等,这些操作符可以编写查询语句,处理各种类型的数据。
LINQ可以用最少的代码对数据源执行复杂的筛选、排序和分组操作。使用相同的基本查询表达式模式来查询和转换 SQL数据库、ADO.NET数据集、XML文档和流以及,NET集合中的数据。
查询表达式必须以from 子句开头,并且必须以select或group 子句结尾。在第一个 from 子
句和最后一个select或group 子句之间,查询表达式可以包含一个或多个下列可选子句。LINQ查询代码中关键字必须小写。
LINQ的不同实现形式及其现状:
- LINQ to Objects:用于操作内存中的对象集合。
- LINQ to SQL:用于查询数据库。然而,LINQ to SQL已经停止维护,被Entity Framework(EF)取代。
- LINQ to Datasets:用于操作数据集。
- LINQ to Entities:用于查询实体框架中的数据。
- LINQ to XML/XSD:用于操作XML数据。
- LINQ to Data Source:用于查询数据源。
基本步骤
- 创建数据模型:使用 LINQ to SQL 工具自动生成或手动创建与数据库表对应的 C# 类。
- 执行查询:使用 LINQ 查询语法来检索、更新、插入或删除数据。
- 提交更改:将对数据所做的更改同步回数据库。
LINQ数据源
- 应用程序始终将源数据视为一个lEnumerable<T>或IQueryable<T>集合。在 LINQtoXML中,源数据显示为一个IEnumerable<XElement>。
- 在 LINQto DataSet中,它是一个IEnumerable<DataRow>。在 LINQ toSQL中,它是定义用来表示SQL表中数据的任何自定义对象的lEnumerable 或lQueryable。
- (IEnumerable<T> 或 IQueryable<T>:这是大多数LINQ查询的返回值类型。它们表示一个序列,可以包含零个、一个或多个元素。)
LINQ组成部分(大概):
- IEnumerable<T> 枚举器
- 扩展方法
- IQueryable<T> (它实现了IEnumerable) :
- lambda表达式 :(详细教程: C#之lambda表达式_c# array.exists-CSDN博客)