15

假设我有一个包含 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 中提取一个值到名为“值”的列中。很好很简单。

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

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

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

4

1 回答 1

5

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

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

所以在回答你的问题时,我会说“不”。

于 2008-10-21T22:18:32.847 回答