LINQ(发音为link 但很多人都说LIN Q)
最大的特质是具备资料查询的能力以及和 VB、C#语言进行整合的能力,
可同时配合 Entity Framework 来存取 SQL Server 资料来源。
LINQ依使用对象可分为以下几种技术类型:
或称为 LINQ to Collection,可以查询实作 IEnumerable 或 IEnumerable介
面的集合物件,如查询阵列、List、集合、档案...等物件。
使用於 XML 查询技术的 API,透过 LINQ 查询运算式可以不需要再额外学
习 xPath 或 xQuery ,就可以查询或排序 XML文件。
透道 LINQ 查询运算式,可以对记忆体内的 Dataset 或 Data Tble 进行查询。
可以对实作 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;
}
}
显示的结果~
撰写 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
<<: 资安学习路上-网站常见漏洞与 Injection的爱恨情仇1
>>: 资安学习路上-网站常见漏洞与 Injection的爱恨情仇2
图形使用者介面(Graphical User Interface,GUI) 指透过点击图示执行隐含的...
DAY05 在 Azure Machine Learning 上建立运算资源 前几天我们已经建立好了...
我们是一间批发机械进口商,开业时间约2年,一直以来就只有一位行政人员。近期实在认为需要软件来管理公司...
以下内容皆参考 Backtrader 官网 之前有介绍过,如果我们下单除了股价以外,还有一个很重要的...
嗨,虽然说第一篇的目的是简单了解一下Matter.js,但在那之前我要偷渡一下自我介绍XD 这是笔者...