0lzqth 2009-09-18
学习LINQ查询时,经常会遇到LINQ查询数据库问题,这里将介绍LINQ查询数据库问题的解决方法。
您可以通过LINQ来编写针对各种数据源的查询访问信息。您不必在使用SQL语法,因为LINQ提供了c#语言来处理,并提供了相同的类型及表达的功能。这是很重要的因为像一个 LINQ 提供了一个声明性方法允许您编写更面向对象的程序。
可以使用 LINQ编写C# 代码,列出使用 LINQ查询数据库,并创建 XML 文档:
var contacts //从数据库检索客户表 from customer in db.Customers where customer.Name.StartsWith("A") && customer.Orders.Count > 0 orderby customer.Name select new { customer.Name, customer.Phone }; var xml //从客户列表生成 XML 数据 new XElement("contacts", from contact in contacts select new XElement("contact", new XAttribute("name", contact.Name), new XAttribute("phone", contact.Phone) ) );
这段代码含义是从数据库中提取数据并从中创建一个 XML 文档写入所需内容。使用LINQ您会感觉到更容易、更自然。您将很快看到更多 LINQ 查询,但目前集中在语言方面。与from, where, orderby,和select 关键字在表里,很明显他们已经扩展进c#的LINQ工具里。
我们刚才所展示的是 C# 代码,但 LINQ 跨编程语言提供常见查询体系结构。他工作在 C# 3.0 and VB.NET 9.0 (即 VB 2008),因此需要专用的编译器,但是,可以其移植到其他.NET 语言。从目前来看F#已经有了LINQ功能,未来会有更多.NET语言得到LINQ的支持。
图中的查询使用的是在 C#语法而不是在新的语言。LINQ并不是一种新的语言。它被集成到 C# 和 VB.NET。 此外,LINQ 可以用于避免.NET 编程语言与 SQL、 XSL 或其他特定于数据的语言想混淆。 LINQ 使查询通过多种类型的数据存储到编程语言的语言特定扩展集中。您可以把linq视为通用远程控制。有时,您 会使用它来查询数据库 ;在其他方面,您也可以查询 XML 文档。您只需使用您喜欢的编程语言不必切换到SQL 或 XQuery 等查询语言。
我们只给您提供简略讲了LINQ查询数据库。此时最大的问题是:为什么我们希望使用 LINQ 之类的工具?为什么不使用以前其它的工具呢?LINQ创建在程序语法里,也同存在于关系数据库和XML文档里。