假设我有一个包含XML类型数据列的表。在SQL中,我可以执行以下语句:

select   top 10  *,
         Content.value('(/root/item/value)[1]', 'float') as Value
from     xmltabletest
where    Content.value('(/root/item/MessageType)[1]', 'int') = 1

结果集仅包含与条件匹配的记录,并将XML中的值提取到名为“Value”的列中。好又简单。

使用Linq To SQL可以实现同样的目的吗?

我想让SQL做繁重的工作,只返回符合我标准的数据,而不必选择,传输,然后处理潜在的大量数据。据我所知,目前这是不可能的,但我想我应该问。

(环境是.NET 3.5,VS2008,SQL Server 2005,如果有帮助的话)

有帮助吗?

解决方案

我现在还不确定这是否已过时,但根据 Scott Guthrie XML数据类型是:

  

在LINQ to SQL中表示为字符串   实体。您可以使用XLINQ进行查询   在LINQ to中的XML列上   SQL权利 - 但这个查询会   发生在你的中间层(内部)   ASP.NET)。您无法执行远程   XQuery针对数据库和过滤器   返回结果基于   第一次发布。

因此,在回答您的问题时,我会说“不。”

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top