リストに関する拡張機能

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

適用対象: SharePoint Foundation 2010

この記事の内容
大きなリスト
ルックアップ列でのリスト アイテムの参照整合性
一意列制約の適用
外部リスト

Microsoft SharePoint Foundation 2010 ではリスト インフラストラクチャに機能が追加され、大きなリストを処理する場合のユーザー エクスペリエンス向上と、データ整合性の強化が実現しています。

大きなリスト

エンタープライズ規模で展開される SharePoint Foundation では、リストのコンテンツが大きなコレクションになることがよくあり、ユーザーが標準の操作でコンテンツにアクセスすると、サイトのパフォーマンスが低下します。新しい [リスト ビューのしきい値] 機能は、データベースの操作で取得できるリスト アイテムの最大数を指定できるようにすることで、この問題に対処します。クエリがしきい値を超えると、サイトのパフォーマンスに悪影響が生じるので、そのクエリはブロックされます。

SPWebApplication クラスのプロパティを使用すると、リスト アイテムを返す操作の要求調整を設定できます。たとえば MaxItemsPerThrottledOperation プロパティでは、クエリまたはリスト更新の影響を受けるアイテムの最大数を指定します。この数値を超えた場合は、操作が取り消されます。リスト オブジェクトの EnableThrottling プロパティでは、当該リストに調整機能を適用するかどうかを指定します。また、SPQuery および SPSiteDataQuery のそれぞれに、RequestThrottleOverride プロパティがあります。SPFieldIndex クラスは、リストのフィールド 1 つまたは 2 つに関する複合インデックスを表し、それらのフィールドを使用したフィルター処理によって効率的なリスト アイテム クエリの実行をサポートします。

大きなリスト機能については、「規模の大きなフォルダーやリストの操作」を参照してください。要求を調整する方法については、「要求の調整」を参照してください。

ルックアップ列でのリスト アイテムの参照整合性

以前の SharePoint Foundation リリースでは、ルックアップ フィールドを使用して、子リストが親リストを参照する形の緩やかな関係をリスト間に定義できました。SharePoint Foundation 2010 では、子リスト内の関連アイテムが親リストのアイテムによって本質的に "認識" され、削除動作を指定することで、参照整合性の制約を子アイテムに設定できます。リスト関係の定義や削除動作の指定は、ユーザー インターフェイスからも、オブジェクト モデルからも行うことができます。

SPRelatedField クラスは、2 つのリストのフィールド間の関係を表します。SPRelatedField オブジェクトのコレクションを取得するには、SPList クラスの GetRelatedFields() メソッドを呼び出します。SPRelationshipDeleteBehavior 列挙は削除の制約の指定に使用され、値は、Cascade 削除 (親リスト アイテムを削除すると、関連するすべての子アイテムも同じトランザクション内で削除される)、Restrict 削除 (子アイテムから参照されている親リスト アイテムをユーザーが削除しようとするとエラー メッセージが表示される)、または None (削除動作が実行されない (既定値)) のいずれかです。削除動作は、ルックアップ フィールドの RelationshipDeleteBehavior プロパティで設定します。これは、SPFieldLookup クラスのインスタンスによって表されます。

詳細については、「ルックアップとリストのリレーションシップ」を参照してください。

一意列制約の適用

SharePoint Foundation では、"一意列制約" という名前の新機能を使用 (適用) して列フィールドの主キーを設定できるようになりました。この機能を使用すると、リストまたはドキュメント ライブラリの列に含まれる値の一意性を確保できます。ただし、列の種類によってはこの機能がサポートされていません。この機能をサポートする列の種類とそうでない種類の一覧については、「列の値における一意性の適用」を参照してください。

一意制約をサポートするために、列にはインデックスを作成できる必要があります。また、一意性がルックアップ列に適用されると、ターゲット リスト内のリスト アイテムは、子リスト (ルックアップ列が存在するリスト) からそのリスト アイテムを参照するリスト アイテムを 1 つしか持つことができません。つまり、一意性はターゲット リストの想定される列ではなく、ID 列に適用されます。

この機能は、SPField オブジェクトの EnforceUniqueValues という名前の新しいプロパティによってプログラムから使用することもできます。このプロパティでは、重複した値が許容されるかどうかを示すブール値を取得または設定します。既定では重複した値が許容されるので、列フィールドのプロパティ EnforceUniqueValues を明示的に true と設定する必要があります。

外部リスト

Microsoft Business Connectivity Services (BCS) には、外部リストが導入されています。このリストを使用すると、SharePoint Foundation のリストのデータにアクセスするのと同じ方法で外部データにアクセスできます。ユーザーは、SharePoint の他のリストと同じように外部リストを操作できます。外部リストについては、「構成要素: 外部コンテンツ タイプおよび外部リスト」を参照してください。

関連項目

概念

構成要素: リストとドキュメント ライブラリ

規模の大きなフォルダーやリストの操作

列の値における一意性の適用

ルックアップとリストのリレーションシップ