将Linq查询结果输出到XML

时间:2014-12-31 14:22:56

标签: c# sql linq

在SQL Server Management工作室中,我可以这样做:

SELECT * FROM tableName FOR XML RAW

为我的表格中的数据生成XML条目列表。

如何使用LINQ查询在C#中执行此操作?

var itemCollection = from entry in dataContextTableName select entry for xml raw

不起作用(它没有编译)。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以编写存储过程,将XML作为OUTPUT参数返回,并通过LinqToSql DataContext访问它。

例如:

CREATE PROCEDURE dbo.GenerateXML

    (
        @xmlOutput nvarchar(MAX) OUTPUT
    )

AS
BEGIN

    SET @xmlOutput  = ( 
        SELECT * FROM tableName FOR XML RAW
    )

END

从这里开始,您必须使用服务器资源管理器将存储过程拖放到DBML文件中,然后在代码中将其简单地拖放到:

string xml = "";    
dataContext.GenerateXML(ref xml)

The source on this can be found here

正如詹姆斯所说,你不能使用原始的LinqToSql语法来做到这一点;或者,您可以将从标准Linq查询(例如:from entry in dataContextTableName select entry)获得的结果序列化为代码中的XML,请参阅here for a good starting point