24.10从数据库中生成XML

XML常常用于在客户机和服务器之间交流数据,或者在多层应用程序的不同层之间交流数据。在数据库中查询某些数据,再根据这些数据生成XML文档或片段,传送给另一层是很常见的。下面的示例就创建一个查询,在Northwind示例数据库中查找某些数据,用LINQ to SQL查询数据,再用LINQ to XML类把数据转换为XML。

试一试:从数据库生成XML

按照下面的步骤在Visual Studio 2010中创建示例:

(1)在C:BegVCSharpChapter24目录中创建一个新的控制台应用程序BegVCSharp_24_6_XMLfromDatabase。

(2)按照本章开头的“第一个LINQ数据库查询”示例,在项目中添加一个新数据源Model1.edmx,再添加与Northwind示例数据库的连接。

(3)编译项目,这样在Model1.edmx中定义的类和属性就可以在后面编辑代码时通过IntelliSense使用了。

(4)打开主源文件Program.cs。

(5)在Program.cs开头添加对System.Xml.Linq名称空间的引用,如下所示:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Xml.Linq;

using System.Text;

(6)把下面的代码添加到Program.cs的Main()方法中:

static void Main(string[] args) {

NORTHWNDEntities northWindEntities = new NORTHWNDEntities();

XElement northwindCustomerOrders = new XElement("customers",

from c in northWindEntities.Customers.AsEnumerable()

select new XElement("customer",

new XAttribute("ID", c.CustomerID),

new XAttribute("City", c.City),

new XAttribute("Company", c.CompanyName),

from o in c.Orders

select new XElement("order",

new XAttribute("orderID", o.OrderID),

new XAttribute("orderDay", o.OrderDate.Value.Day),

new XAttribute("orderMonth", o.OrderDate.Value.Month),

new XAttribute("orderYear", o.OrderDate.Value.Year),

new XAttribute("orderTotal", 713

在了解了如何从数据库生成XML后,你可能会对LINQ to XML编程基础感兴趣,可以参考这篇文章:LINQ to XML编程基础。如果你想更深入地学习LINQ教程,包括LINQ TO SQL和LINQ TO XML,这里有一个非常全面的中文版教程:LINQ教程中文版LINQ TO SQL LINQ TO XML

想象一下,如果你能轻松地用LINQ操作XML,甚至修改应用程序的配置文件?看看这个示例:使用linq to xml修改app.config示例linq读取xml。这真是太棒了!探索更多关于LINQ to XML的编程技巧和实践,请查看这篇文章:LINQ to XML的编程基础。这些资源不仅能帮助你提高技术,还能让你的项目更加高效和现代化。快去尝试吧!