在SQL Server Management工作室中,我可以这样做:
SELECT * FROM tableName FOR XML RAW
为我的表格中的数据生成XML条目列表。
如何使用LINQ查询在C#中执行此操作?
var itemCollection = from entry in dataContextTableName select entry for xml raw
不起作用(它没有编译)。有什么想法吗?
答案 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。