[自学笔记]LINQ资料查询技术

LINQ(发音为link 但很多人都说LIN Qhttp://img2.58codes.com/2024/emoticon01.gif)
最大的特质是具备资料查询的能力以及和 VB、C#语言进行整合的能力,
可同时配合 Entity Framework 来存取 SQL Server 资料来源。

LINQ依使用对象可分为以下几种技术类型:

1. LINQ to Objects

或称为 LINQ to Collection,可以查询实作 IEnumerable 或 IEnumerable介
面的集合物件,如查询阵列、List、集合、档案...等物件。

2. LINQ to AML

使用于 XML 查询技术的 API,透过 LINQ 查询运算式可以不需要再额外学
习 xPath 或 xQuery ,就可以查询或排序 XML文件。

3. LINQ to DataSet

透道 LINQ 查询运算式,可以对记忆体内的 Dataset 或 Data Tble 进行查询。

4. LINQ to SQL

可以对实作 IQueryable介面的物件做查询,也可以直接对 SOL Server 和
SQL Server Express 资料库进行查询与编辑。此功能目前由 Entity Framework
与LINQ to Entity 所取代, ASP.NET MVC 最常使用 Entity Framework 来
当做 Model技术。

LINQ 查询运算式 (Query Expression) 先透过 from 关键字来指定欲查询的资料 集合以及进行资料逐一处理时所需使用的变数名称和型别,类似使用 forcach 迴圈 的方式,将集合内查询出来的物件逐一取出并放置到区域变数中进行比对,语法中 可以进一步使用where 条件来过滤资料,然后再使用 orderby 来指定符合条件物件 的排序方式,最后使用 select 子句来指定每次比对后所要得到的查询结果 ,或使用
select new 指定要取得的新物件并且同时指定该物件之属性,最后再将整个LINQ的
查询结果储存到一个指定的变数。LINQ 查询语法如下:

var 变数 = from[资料型别] 範围变数 in 集合           where <条件>           orderby 栏位名称1 [ascending|descending][,栏位名称2[...]]           select new{[别名1=] 栏位名称1 [,[别名2=] 栏位名称2[...] ]};

ex:将阵列 递减排序 及 加总

public class DefaultController : Controller    {        // GET: Default        public string ShowArrayDesc()        {            int[] score = new int[] { 78, 99, 20, 100, 66 };            string show = "";            //LINQ扩充方法写法            //使用LINQ的OrderByDescending方法将score阵列进行递减排序            var result = score.OrderByDescending(m => m);            //LINQ查询运算式写法(同上面那行用法)            //将score阵列进行递减排序 并将结果指定给result            //var result = from m in score            //             orderby m descending            //             select m;            show = "递减排序:";            foreach (var m in result)            {                show += m + ",";            }            show += "<br />";            //使用LINQ的sum方法将score阵列进行加总            show += "总和:" + result.Sum();            return show;        }    }

显示的结果~
http://img2.58codes.com/2024/20135530nUKvgwpGGU.jpg

LINQ方法

撰写 LINQ 查询时可以使用前面所介绍的查询运算式(Query Expression)和方法语法(Fluent Syntax)。
LINQ 方法之语法基本上是以扩充方法和 Lambda 表达式来建立查询。 查询运鼻式与方法语法两者执行结果虽然相同,但大部份的情况使用 LNQ
方法在写法上会比较简洁,若是查询运算式语法过多(例如使用 Join 来进行合併),
则使用方法语法会比较不容易撰写,因此开发人员可视实际倩况来选择 LINQ 查询
运算式或是 LINQ 方法语法。LINQ 方法语法如下:

var 变数 = 集合.LINQ扩充方法(Lamdba运算式)

ex:

var result = score.OrderBy(m => m);

内容参考自:跟着实务学习ASP NET MVC


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章