LINQ,语言集成查询(Language INtegrated Query)是一组用于c#和Visual Basic语言的扩展。它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据。从技术角度而言,LINQ定义了大约40个查询操作符,如select、from、in、where以及orderby(C#)中。试用这些操作可以编写查询语句。不过,这些查询还可以基于很多类型的数据,每个数据类型都需要一个单独的LINQ类型。
经过了最近20 年,面向对象编程技术( object-oriented (OO) programming technologies )在工业领域的应用已经进入了一个稳定的发展阶段。程序员现在都已经认同像 类(classes)、对象(objects)、方法(methods)这样的语言特性。考察现在和下一代的技术,一个新的编程技术的重大挑战开始呈现出来,即面向对象技术诞生以来并没有解决降低访问和整合信息数据( accessing and integrating information )的复杂度的问题。其中两个最主要访问的数据源与数据库( database )和 XML 相关。LINQ 提供了一条更常规的途径即给 .Net Framework 添加一些可以应用于所有信息源( all sources of information )的具有多种用途( general-purpose )的语法查询特性( query facilities ),这是比向开发语言和运行时( runtime )添加一些关系数据( relational )特性或者类似 XML 特性( XML-specific )更好的方式。这些语法特性就叫做 .NET Language Integrated Query (LINQ) 。 包含 DLinq 和 XLinq
LINQPAD是一款用于LINQ运算和测试的工具,功能丰富,操作简单。
一、左上部为数据源连接部分,点击添加连接[Addconnection]可以创建一个数据库连接,数据源种类很多,可以添加LinqtoSql,也可以是WCF服务,甚至可以是其它数据源。
二、右边部分就是查询窗口,是写代码LINQ语句、的部分,可以选择写代码的语言与所要查询的数据库,还可以选择数据库查询分析器类似。
三、左下部分是一些教学示例和保存的查询
四、右下部分就是查询结果窗口
五、查询结果窗口的选项卡是很激动人心。(包括:Result,表达式,SQL语句,MSIL代码)
本文使用Customers表中的数据为例,在语言列表中可选择:
1、C#Expression(用于进行LinqSql查询)
from c in Customers select
c
2、C#Statement(用于C#语句查询,其中的Dump可以显示查询结果)
var p=from c in Customers select
c;
p.Dump();
3、C#Program(用于支持方法和类型的查询,须定义Main方法)
voidMain()
{
var
p=from c in Customers select
c;
p.Dump();
}
4、SQL查询语句(传统的SQL查询语法)
select * from
customer
5、其中在前3种方法中,查询的数据库表默认为表名后面加S,这点在LINQPad中要注意
6、在使用时推荐使用语句模式C#Statement。
LINQPad允许用户引用自定义程序集和导入自定义命名空间来进行扩展。通过这种扩展可以支持LINQ to Entities。
除了是学习和测试工具以外,LINQPad 针对SQL数据库执行特定查询方面越来越受欢迎。
输出到结果视图的简单LINQ to SQL表达式,如下所示:
输出到Lambda视图的简单LINQ to SQL表达式,如下所示:
输出到SQL视图的简单LINQ to SQL表达式,如下所示:
LINQPad免费并不断更新。
先看下如何连接数据库,运行LINQPad按下图进行操作,
点击next,弹出如下界面,
点击OK后的界面如下,
下面就可以对具体表进行linq操作了,如图
而后就可以在右侧的编辑窗口编写代码了,
点击不同的选项将会出现类似如下界面,