2008-10-17 45 views
15

假設我有一個包含XML類型數據列的表。在SQL中,我可以執行以下語句:在Linq To SQL中使用XQuery?

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實現到SQL?

我想獲得SQL做繁重,僅返回數據匹配我的標準,而不必選擇,轉讓,然後再處理數據的潛在的巨大的塊。據我所知目前這是不可能的,但我想我應該問。

(環境是.NET 3.5,VS2008,SQL Server 2005中是否有幫助)

+0

我遇到同樣的問題,不得不去做使用存儲的特效或執行XQuery查詢通過的datacontext – 2008-10-21 17:51:45

回答

5

我不能完全肯定這是否是過時了,但根據Scott Guthrie XML數據類型是:

表示爲字符串LINQ到SQL 實體。您可以使用XLINQ在您的LINQ到 SQL Entitiy中的XML列上查詢 - 但這個查詢將在您的中間層(在 ASP.NET中)中發生 。你不能對數據庫執行遠程 XQuery和基礎,在 首次發佈過濾 返回的結果。

所以在回答你的問題時,我會說「不」。