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 に答える