新機能: クエリに関する機能拡張

最終更新日: 2010年4月12日

適用対象: SharePoint Foundation 2010

Microsoft SharePoint Foundation 2010 にはデータのクエリとフィルターを行う複数の新しい方法が組み込まれています。

サーバー側コード用の新しいクエリ サポート

SharePoint Foundation 2010 では、サーバー コードでのデータのクエリが、これまでよりもはるかに簡単で、いっそう強力になりました。

LINQ to SharePoint プロバイダー

リスト データのクエリを実行する場合に Collaborative Application Markup Language (CAML) クエリを作成する必要はなくなりました。SharePoint Foundation 2010 には LINQ to SharePoint プロバイダーが付属しており、サーバー コードから LINQ 構文を使用して SharePoint リストのクエリを実行できます。LINQ クエリはプロバイダーによって CAML クエリに変換され、コンテンツ データベースに送信されます。SharePoint Foundation 2010 ではクエリ スキーマに新しく Join 要素が追加されているので、join キーワードを使用することにより、LINQ クエリに暗黙的または明示的な JOIN を含めることができます (後述の「CAML クエリにおけるリスト JOIN のサポート」を参照してください)。また、プロバイダーを使用してリストに書き込むこともできます。なお、LINQ プロバイダーを使用する場合は常にそうですが、コンテンツのリレーショナル データベースに対するオブジェクト指向インターフェイスを実現するクラスが必要となります。このためのクラスは、SharePoint Foundation 2010 に付属の SPMetal ツールによって生成されます。LINQ to SharePoint プロバイダーの詳細については、「LINQ to SharePoint でデータを管理する」を参照してください。SPMetal の詳細については、「SPMetal」を参照してください。

LINQ 構文は、LINQ to SharePoint プロバイダーを使用しない場合にもコード内で使用できます。IEnumerable<T> を実装するすべての SharePoint Foundation オブジェクトは LINQ 構文のクエリを受け付けます。詳細については、「LINQ to Objects (英語)」を参照してください。

CAML クエリにおけるリスト JOIN のサポート

新しい Join 要素 (ビュー) を使用すると、複数のリストを 1 回のクエリ内で結合できます。どのリスト フィールドを結果に含めるかは、新しい ProjectedFields 要素 (ビュー) によって指定します。これらの要素の使用にあたっては、注意の必要な考慮事項がいくつかあります。詳細については、「結合と予測のリストを作成する」を参照してください。

クライアント側コードでのクエリ

クライアント アプリケーションから SharePoint Foundation データをアクセスする方法は大幅に変更されています。

クライアント オブジェクト モデルにおけるクエリ

クライアント オブジェクト モデル内では、以下に示す 2 つの方法でクエリを実行できます。

ADO.NET Data Services Framework のサポート

クライアント アプリケーションで新しい SharePoint Foundation クライアント オブジェクト モデルを使用せず、必要なのがリスト データのクエリのみである場合は、ADO.NET Data Services フレームワーク (英語) を使用してコンテンツ データベースのクエリを実行する方法もあります。

Web サービスによる SharePoint データ提供の非推奨

SharePoint Foundation 製品の従来バージョンでは、SharePoint Foundation 展開とクライアントとのやり取りを実現する手段として一連の Web サービスが提供されていました。下位互換性および Web サービス クライアントとの相互運用性を維持するために、それらのサービスの一部 (List Data Retrieval Web Service など) は引き続きサポートされています。しかし、最良のパフォーマンスと使い勝手を得るために、クライアント オブジェクト モデルまたは ADO.NET Data Services Framework を使用することをお勧めします。

owssvr.dll に対する直接呼び出しの非推奨

Microsoft SharePoint Foundation 2010 ソフトウェア開発キット (SDK) には、クライアント側から SharePoint Foundation 展開へのアクセスに RPC 呼び出しを使用する方法が現在も記載されていますが、この情報は、RPC 呼び出しを使用している既存クライアント アプリケーションのトラブルシューティングを支援する目的で提供されているものです。今後の SharePoint Foundation との互換性を最大限に確保するために、新規に開発するクライアント アプリケーションでは、owssvr.dll ファイルの直接呼び出しによるクライアント アクセス方法を採用しないことをお勧めします。