LINQ to SharePoint プロバイダーから .NET
最終更新日: 2015年3月9日
適用対象: SharePoint Foundation 2010
ここでは、LINQ to SharePoint プロバイダーが Microsoft SharePoint Foundation フィールド (列) の型を Microsoft .NET Framework の型にマップする方法について説明します。
型のマッピング テーブル
フィールドの型 |
.NET 型 |
コメント |
---|---|---|
AllDayEvent |
||
Attachments |
||
Boolean |
||
Calculated |
戻り値の型 |
|
Choice |
Enum または String |
「Choice フィールドと MultiChoice フィールド」を参照してください。 |
Computed |
||
ContentTypeId |
Byte[] |
|
Counter |
||
CrossProjectLink |
||
Currency |
||
DateTime |
||
File |
||
GridChoice |
||
Guid |
||
Integer |
Int32 または Nullable<T>。ここで、T は Int32 です。 |
|
Lookup |
「Lookup フィールド」を参照してください。 |
|
MaxItems |
||
ModStat |
||
MultiChoice |
フラグ付きの Enum または String |
「Choice フィールドと MultiChoice フィールド」を参照してください。 |
Note |
||
Number |
||
PageSeparator |
||
Recurrence |
||
Text |
||
ThreadIndex |
||
Threading |
||
URL |
||
User |
User フィールドは、ユーザー情報リスト (既定では非表示) に対するルックアップ フィールドです。「Lookup フィールド」を参照してください。 |
|
WorkflowEventType |
||
WorkflowStatus |
Choice フィールドと MultiChoice フィールド
次の表で指定されているように、Choice フィールドと MultiChoice フィールドの型のマッピングは、選択肢を追加できるかどうか、および使用できる選択肢の数によって決まります。
選択肢を追加できず、30 個以下の選択肢を使用できる |
選択肢を追加できず、31 個以上の選択肢を使用できる |
選択肢を追加できる |
|
---|---|---|---|
Choice フィールド |
使用可能なすべての選択肢が含まれる Microsoft .NET Framework enum 型で、選択肢には 1 から始まる番号が付いています。enum には、Invalid 値 (-1) と None 値 (0) が含まれます。クラスの名前は FieldNameChoices です (FieldName は、フィールド名に置き換えてください)。 |
<-- 左記と同じ |
String (SPMetal により、使用可能な選択肢ごとに 1 つずつ、一連の String 定数が含まれる、シールされたクラスが作成されます)。 |
MultiChoice フィールド |
上記と同じ。ただし、enum にはフラグが設定されます。 |
右記と同じ --> |
IList<String> (SPMetal により、使用可能な選択肢ごとに 1 つずつ、一連の String 定数が含まれる、シールされたクラスが作成されます)。 |
Lookup フィールド
Lookup フィールドおよび User フィールドの型のマッピングは、フィールドで複数の値が許可されているかどうか、およびターゲット リストが SPMetal で生成されたコードで表されているかどうかによって決まります (ターゲット リストが非表示の場合、または SPMetal がリストを除外するように構成されている場合、コードは生成されない可能性があります)。次の表に、行われる可能性があるマッピングを示します。
複数の値が許可されていない |
複数の値が許可されている |
|
---|---|---|
生成されたコードでターゲット リストが表されている |
生成されたコードでターゲット リストが表されている場合、Lookup フィールドは, .NET Framework の基本型にはマップされません。 SPMetal によって、プライベート フィールド型 EntityRef<TEntity> が生成されます。ここで、TEntity はターゲット列の種類ではなく、ターゲット リストの "コンテンツ タイプ" です。このプロパティは、TEntity 型の生成されたプロパティでラップされます。 |
左記の説明が適用されますが、フィールドは、プライベート フィールドおよび EntitySet<TEntity> 型のプロパティの両方として表されます。ここで、TEntity はターゲット リストのコンテンツ タイプです。 |
生成されたコードでターゲット リストが表されていない |
フィールドは、オブジェクト リレーショナル マッピングで 2 回表されます。
さらに、2 つ目のプロパティとフィールドのペアが生成され、ターゲット リストの ID フィールドが表されます。フィールドとプロパティの両方が Nullable<T> 型です。ここで、T は Int32 です。 |
フィールドは、オブジェクト リレーショナル マッピングで 2 回表されます。
さらに、2 つ目の IList<T> プロパティと LookupList<T> フィールドのペアが生成され、ターゲット リストの ID フィールドが表されます。両方の T は Nullable<T> です。ここで、T は Int32 です。 |
注意
User フィールドは、ユーザー情報リストに対するルックアップ フィールドです。このリストは非表示なので、既定では、そのリストを表すコードは SPMetal によって生成されません。