SPMetal文法の使い方
4744 ワード
SPMetalは、Microsoft SharePoint Foundationコンテンツデータベースにオブジェクト向けのインタフェースを提供するエンティティークラスを生成するコマンドラインツールです.これらのクラスは、主にLINQ to SharePointクエリに使用されますが、リスト・アイテムを追加、削除、変更するために同時競合解決方法を使用することもできます.また、コンテンツを参照するための通常のSharePoint Foundationオブジェクトモデルの代替としても使用できます.
このツールはSharePoint Foundationに付属しており、%ProgramFiles%Common FilesMicrosoft Sharedweb server extensions14BINにあります.
SPMetalは、Microsoft Visual Studioで通常、開発サイクル中に進化する新しいWebサイトタイプを含むソリューションの一部であるため、事前生成コマンドとして実行されます.SPMetalを実行するたびに、生成されたファイルが上書きされるため、指定された出力パスと指定されたWebサイトでは変更できません.生成されるクラスはpartialなので、手動で作成した個別のコードファイルを使用してクラスにメンバーを追加できます.
ソリューションが既存のWebサイトタイプ(SharePoint Foundationに含まれるワークグループWebサイトなど)に基づいており、そのようなWebサイトに常に存在するリストと、これらのリストに常に存在するフィールド(列)のみを参照している場合は、SPMetalを1回だけ実行し、上書きされない生成ファイルを変更できます.
SPMetalを使用するインスタンスの詳細については、方法:SPMetalの使用を参照してください.
基本構文
SPMetalでは、他のWindowsコマンドラインツールの基本構文を使用します.
各オプションの前に左斜線があります.ほとんどのオプションには値が必要です.この場合、オプション名の後にはコロンが付き、値はコロンの後に付きます.
オプションは任意の順序で並べられます.各オプションが必須ではありませんが、値を使用するオプションが含まれている場合は、そのオプションに値を指定する必要があります.値にスペースが含まれている場合は、引用符(")で値全体を引き起こす必要があります.
「/?」を単独で使用する場合オプションを選択すると、ツールに関する簡単なヘルプが標準出力に表示されます.
コマンドラインツール
次の表に、各オプションとその使用方法を示します.
オプション
値の定義
例
コメント
web
エンティティクラスがデータをモデリングしたWebサイトの完全な絶対URL.
/web:http://ContosoServer/Marketing
必須オプション.サーバ名にポート番号を含めることができます.たとえば、/web:http://ContosoServer:5555/Marketing.
URLにホームページや他のページを含めないでください.
code
ファイルの相対パスまたは絶対パスとファイル名を出力します.
/code:MarketingSite.cs
このオプションを使用しない場合、生成されたコードは標準出力に転送されます.
ファイル拡張子が指定されていない場合、またはファイル拡張子がcsまたはvbでない場合はlanguageオプションを使用する必要があります.
さらに、ファイル拡張子を含まないファイル名をDataContextから派生したクラスの名前の先頭として使用することもできる.この例では、派生クラス名はMarketingSiteDataContextです.派生クラスは、Webサイト全体のリストとデータを表すため、その意味を表すファイル名を選択します.(SPMetalパラメータXMLファイルを使用して、このネーミング動作を書き換えることができます.)
language
生成されたコードのプログラミング言語.
/language:csharp
可能な値は「csharp」と「vb」のみです.
codeオプションの値がファイル拡張子としてcsまたはvbを使用する場合、SPMetalはlanguageオプションを使用することなく言語を推定できます.
namespace
エンティティークラス宣言を含むネーミングスペース.
/namespace:Contoso.TeamActivityReports
このオプションを使用しない場合、生成されたコードは名前空間を指定しません.コンパイルされたプログラム・セットは、Visual Studioプロジェクトのプロパティで指定されたデフォルトの名前空間を生成されたクラスの名前空間と見なします.
useremoteapi
値がありません.
/useremoteapi
このオプションは、Webパラメータの値が指すサーバがSPMetalを実行するサーバではないことを示します.SharePointをオンラインで展開する場合、このパラメータを使用して、ソリューションを砂箱ソリューションとしてアップロードするWebサイトのコードを生成できます.
user
そのコンテキストでSPMetalを実行するユーザ.
/user:Contoso\bob
このオプションは、自分のコンテキストでSPMetalを実行しない場合に使用します.ドメインを指定します.
password
userオプションで指定したユーザーのパスワード.
/password:$5U+ryz
userオプションと組み合わせて使用します.
serialization
生成されたクラスをインスタンス化するオブジェクトがシーケンス可能かどうかを指定します.
/serialization:unidirectional
可能な値はunidirectionalとnoneのみです.これらのオブジェクトをシーケンス可能にする場合は、「unidirectional」を指定します.SPMetalは、System.Runtime.Serializationネーミングスペースの属性をクラスおよび属性宣言に追加し、逆シーケンス化イベントのハンドラを追加します.
このオプションを使用しない場合は、「none」と仮定します.
parameters
SPMetalのデフォルト設定の書き換えを含むXMLファイルのパスと名前を指定します.
/parameters:MarketingSite.xml
通常、同じパラメータXMLファイルを異なるWebサイトで再利用することはありませんので、Webサイトと同じ名前を指定してください.
パラメータファイルの詳細については、SPMetalのデフォルト値をパラメータXMLファイルで置き換えるを参照してください.
例
C#コードの生成:
カスタムパラメータ設定を使用してVisual Basicコードを生成するには:
指定したユーザーコンテキストからVisual Basicコードを生成します.
参照
このツールはSharePoint Foundationに付属しており、%ProgramFiles%Common FilesMicrosoft Sharedweb server extensions14BINにあります.
SPMetalは、Microsoft Visual Studioで通常、開発サイクル中に進化する新しいWebサイトタイプを含むソリューションの一部であるため、事前生成コマンドとして実行されます.SPMetalを実行するたびに、生成されたファイルが上書きされるため、指定された出力パスと指定されたWebサイトでは変更できません.生成されるクラスはpartialなので、手動で作成した個別のコードファイルを使用してクラスにメンバーを追加できます.
ソリューションが既存のWebサイトタイプ(SharePoint Foundationに含まれるワークグループWebサイトなど)に基づいており、そのようなWebサイトに常に存在するリストと、これらのリストに常に存在するフィールド(列)のみを参照している場合は、SPMetalを1回だけ実行し、上書きされない生成ファイルを変更できます.
SPMetalを使用するインスタンスの詳細については、方法:SPMetalの使用を参照してください.
基本構文
SPMetalでは、他のWindowsコマンドラインツールの基本構文を使用します.
SPMetal [options]
各オプションの前に左斜線があります.ほとんどのオプションには値が必要です.この場合、オプション名の後にはコロンが付き、値はコロンの後に付きます.
SPMetal /option1 /option2:value /option3:"value with a space"
オプションは任意の順序で並べられます.各オプションが必須ではありませんが、値を使用するオプションが含まれている場合は、そのオプションに値を指定する必要があります.値にスペースが含まれている場合は、引用符(")で値全体を引き起こす必要があります.
「/?」を単独で使用する場合オプションを選択すると、ツールに関する簡単なヘルプが標準出力に表示されます.
コマンドラインツール
次の表に、各オプションとその使用方法を示します.
オプション
値の定義
例
コメント
web
エンティティクラスがデータをモデリングしたWebサイトの完全な絶対URL.
/web:http://ContosoServer/Marketing
必須オプション.サーバ名にポート番号を含めることができます.たとえば、/web:http://ContosoServer:5555/Marketing.
URLにホームページや他のページを含めないでください.
code
ファイルの相対パスまたは絶対パスとファイル名を出力します.
/code:MarketingSite.cs
このオプションを使用しない場合、生成されたコードは標準出力に転送されます.
ファイル拡張子が指定されていない場合、またはファイル拡張子がcsまたはvbでない場合はlanguageオプションを使用する必要があります.
さらに、ファイル拡張子を含まないファイル名をDataContextから派生したクラスの名前の先頭として使用することもできる.この例では、派生クラス名はMarketingSiteDataContextです.派生クラスは、Webサイト全体のリストとデータを表すため、その意味を表すファイル名を選択します.(SPMetalパラメータXMLファイルを使用して、このネーミング動作を書き換えることができます.)
language
生成されたコードのプログラミング言語.
/language:csharp
可能な値は「csharp」と「vb」のみです.
codeオプションの値がファイル拡張子としてcsまたはvbを使用する場合、SPMetalはlanguageオプションを使用することなく言語を推定できます.
namespace
エンティティークラス宣言を含むネーミングスペース.
/namespace:Contoso.TeamActivityReports
このオプションを使用しない場合、生成されたコードは名前空間を指定しません.コンパイルされたプログラム・セットは、Visual Studioプロジェクトのプロパティで指定されたデフォルトの名前空間を生成されたクラスの名前空間と見なします.
useremoteapi
値がありません.
/useremoteapi
このオプションは、Webパラメータの値が指すサーバがSPMetalを実行するサーバではないことを示します.SharePointをオンラインで展開する場合、このパラメータを使用して、ソリューションを砂箱ソリューションとしてアップロードするWebサイトのコードを生成できます.
user
そのコンテキストでSPMetalを実行するユーザ.
/user:Contoso\bob
このオプションは、自分のコンテキストでSPMetalを実行しない場合に使用します.ドメインを指定します.
password
userオプションで指定したユーザーのパスワード.
/password:$5U+ryz
userオプションと組み合わせて使用します.
serialization
生成されたクラスをインスタンス化するオブジェクトがシーケンス可能かどうかを指定します.
/serialization:unidirectional
可能な値はunidirectionalとnoneのみです.これらのオブジェクトをシーケンス可能にする場合は、「unidirectional」を指定します.SPMetalは、System.Runtime.Serializationネーミングスペースの属性をクラスおよび属性宣言に追加し、逆シーケンス化イベントのハンドラを追加します.
このオプションを使用しない場合は、「none」と仮定します.
parameters
SPMetalのデフォルト設定の書き換えを含むXMLファイルのパスと名前を指定します.
/parameters:MarketingSite.xml
通常、同じパラメータXMLファイルを異なるWebサイトで再利用することはありませんので、Webサイトと同じ名前を指定してください.
パラメータファイルの詳細については、SPMetalのデフォルト値をパラメータXMLファイルで置き換えるを参照してください.
例
C#コードの生成:
SPMetal /web:http://ContosoServer/Marketing /code:MarketingSite.cs
カスタムパラメータ設定を使用してVisual Basicコードを生成するには:
SPMetal /web:http://ContosoServer/Marketing /code:MarketingSite.vb /parameters:MarketingSite.xml
指定したユーザーコンテキストからVisual Basicコードを生成します.
SPMetal /web:http://ContosoServer/Marketing /code:MarketingSite.vb /user:Contoso\sally /password:7Yj38d
参照