【问题标题】:Output Linq Query Result to XML将 Linq 查询结果输出到 XML
【发布时间】:2014-12-31 14:22:56
【问题描述】:

在 SQL Server Management Studio 中,我可以这样做:

SELECT * FROM tableName FOR XML RAW

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

如何在 C# 中使用 LINQ 查询?

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

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

【问题讨论】:

  • 我不认为你可以使用 LINQ,在 LINQ 中并非所有可能的 SQL 都是可能的,你要么必须运行 SQLCommand 要么自己将结果数据集序列化为 xml

标签: c# sql linq


【解决方案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。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-26
    • 1970-01-01
    相关资源
    最近更新 更多