|
以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 Dot NET,C#,ASP,VB 』 (http://bbs.xml.org.cn/list.asp?boardid=43) ---- [原创]语言集成查询(LINQ)简介及如何使用 (http://bbs.xml.org.cn/dispbbs.asp?boardid=43&rootid=&id=69387) |
|
-- 作者:ieeer -- 发布时间:11/12/2008 1:45:00 PM -- [原创]语言集成查询(LINQ)简介及如何使用 语言集成查询(LINQ)简介及如何使用 语言集成查询(LINQ)是Visual Studio 2008和.NET框架中具有开创性的创新,它是连接了对象世界和数据世界的纽带。LINQ是SQL Server 2008中开发改进的一部分,我想知道它是怎么工作的以及我该怎样在其它管理领域而不仅仅是SQL Server中使用它。 专家解答 下面开始介绍LINQ。LINQ是对.NET框架一组扩展集的项目名称,这组扩展集围绕语言集成查询、集合和转换操作。它使用本地语言语法扩展了C#和VB用于查询并提供了类库来利用这些功能,这些只在.NET Framework 3.5中可用。对于编写经常访问记录集的开发人员来说这意味着很多。事实上,查询经常以专门的查询语言来表达不同的数据源,这使得开发人员很难为他们要访问的每个数据源或每种数据格式学习一种查询语言。这就是LINQ要做的。它通过提供一个兼容模型用于使用各种数据源和数据格式的数据,从而简化了数据访问。在LINQ中,数据被翻译成了对象,易于开发人员使用。学习LINQ将会使我们了解它的功能和它的益处。 创建一个简单的LINQ项目 下面使用Visual Studio 2008中的C#语言创建一个简单的控制台项目。确保你从目标框架下拉列表框中选择了.NET Framework 3.5。
这将打开你的Program.cs文件。注意在.NET Framework 3.5下简单创建的项目会自动为System.Linq命名空间添加一个使用指示,因为这已经是System.Core装配的一部分。System.Linq命令空间提供了类和接口,它们支持使用LINQ的查询。我们将从它开始了解LINQ的基本内容。
下面在static void Main(string[] args)中编写一些代码: //Obtaining the data source // Create the query // Execute the query
让我们看看代码的结构是怎样的。from条件从句指定了数据源,在这个例子中是carNames集合。where条件应用了过滤器,在这个例子中,是集合中所有包含字母“e”的元素列表。select条件从句指定了返回元素的类型。有一个例子可以创建具有更少属性的对象实例。这个查询变量query只存储当查询执行时或之后的某个时间点生成这些结果所需的信息。简单地定义这个查询变量不会返回任何数据或执行任何动作。上面代码的第三个组成部分是查询执行。正如我所提到的,查询变量不包含任何数据,只包含查询命令。这个查询的实际执行是当我们迭代完这个查询变量。有两个方法来这么做。第一是上面所显示的。用一个foreach语句迭代这个查询变量并执行它。这个理念叫做延迟查询执行。当处理数据源例如高度事务型数据库系统时这是非常重要的,因为你要将对数据库的连接降低到最少,除非必要(数据库连接是数据库服务器上的额外资源)。你可以选择使用聚合功能像Count、Max、Average和First或者调用ToList()或ToArray()方法来立即执行这个查询。另一个方法是将这个集合绑定到web或窗口表单控件中的一个数据绑定控件,类似于你在Visual Studio之前版本中所做的——指定这个控件的DataSource属性为这个查询变量并调用DataBind()方法。 在这个代码中要强调的另一个方面是对关键字var的使用,这是在C# 3.0中引入的新关键字。它所做的是查看赋给这个变量的值,然后决定和设置合适的值。这个理念叫做类型推导。从上面的代码,这个查询变量query显示为一个字符串数组。所以编译器自动假设它是一个IEnumerable类型的变量。如果你不知道运行时这个变量的类型,那么这是很有用的。但是这不意味着在最初的赋值之后任何类型都可以赋给这个变量——像一个动态类型——因为.NET是一个强大的强类型语言平台。这简单地说就是一个对象可以赋为一个不同类型而编译器会很容易地处理。对一个已有的对象赋为一个不同类型是与面向对象编程中的多态理念相冲突的。假设你给这个查询变量query赋值12。这将会抛出一个类型转换异常,因为这个变量的原始类型是一个字符串集合。 当你在Visual Studio中运行你的项目时,你的输出将看起来如下所示。你可以按下F5或点击Debug ——来启动Visual Studio中的调试。 |
|
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
7,382.813ms |