如何将Linq查询结果转换为XML?

Linq到XML领域的新手……

我有一个带有结果的Linq查询,我想将这些结果转换为XML。 我猜测必须有一个相对简单的方法,但我找不到它……

谢谢!

一个例子。 你应该明白这个想法。

XElement xml = new XElement("companies", from company in db.CustomerCompanies orderby company.CompanyName select new XElement("company", new XAttribute("CompanyId", company.CompanyId), new XElement("CompanyName", company.CompanyName), new XElement("SapNumber", company.SapNumber), new XElement("RootCompanyId", company.RootCompanyId), new XElement("ParentCompanyId", company.ParentCompanyId) ) ); 

你的Linq查询将返回某种对象图; 获得结果后,您可以使用任何方法将其转换为可以使用标准对象的XML。 Linq to XML包含新的XML类,它提供了一种创建XML的方法(请参阅rAyt的答案),但您也可以使用XmlSerializer并在类/属性上放置属性来控制精确的XML输出。

以下代码适用于“linq to entities”。 数据必须在内存中,使用.ToArray()完成,以便在演讲中对其进行处理。

 XElement xml = new XElement("companies", from company in db.CustomerCompanies.AsEnumerable() orderby company.CompanyName select new XElement("company", new XAttribute("CompanyId", company.CompanyId), new XElement("CompanyName", company.CompanyName), new XElement("SapNumber", company.SapNumber), new XElement("RootCompanyId", company.RootCompanyId), new XElement("ParentCompanyId", company.ParentCompanyId) ) );