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

时间:2009-08-10 16:12:04

标签: c# linq linq-to-xml

Linq to XML arena的新手......

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

谢谢!

3 个答案:

答案 0 :(得分:9)

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

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)
                )
            );

答案 1 :(得分:1)

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

答案 2 :(得分:1)

以下代码适用于“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)
            )
        );