在Linq To SQL中使用XQuery?

Cur*_*att 15 linq xquery sql-server-2005 linq-to-sql

假设我有一个包含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
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

小智 5

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

在LINQ to SQL实体中表示为字符串.您可以使用XLINQ查询LINQ to SQL权限中的XML列 - 但此查询将在您的中间层(在ASP.NET中)中进行.您无法对数据库执行远程XQuery,并根据第一个版本中的结果过滤返回的结果.

所以在回答你的问题时,我会说"不".