方法: データベースの生成をカスタマイズする (データベース生成ウィザード)

このトピックでは、データベース生成ウィザード (Entity Data Model ツール) によって生成されるデータ記述言語 (DDL) をカスタマイズする方法を説明します。 生成される既定の DDL については、「データベースの生成規則 (データベース生成ウィザード)」を参照してください。

データベース生成ウィザードは、Windows Workflow Foundation とテキスト テンプレートを使用して以下の手順を実行します。

  1. 概念モデルに基づいてストア スキーマ定義言語 (SSDL) を生成します。

  2. SSDL を概念モデルに割り当てるマッピング仕様言語 (MSL) を生成します。

  3. SSDL に基づいて DDL を生成します。

データベース生成ウィザードで使用される既定のワークフローと既定のテキスト テンプレートは、概念モデルの [データベース生成ワークフロー] プロパティと [DDL 生成テンプレート] プロパティで指定します。 以下の手順は、データベース生成ウィザードの DDL 生成プロセスでカスタム ワークフローまたはカスタム テキスト テンプレート (あるいはその両方) が使用されるようにプロジェクトを構成する方法を説明しています。 この手順では、Entity Data Model デザイナー (エンティティ デザイナー) で .edmx ファイルを開き、概念モデルを設計済みであることを前提としています。

Dd560887.note(ja-jp,VS.100).gif注 :
通常、ワークフローまたはテキスト テンプレートをカスタマイズするには、両方のカスタマイズが必要です。

データベース生成ワークフローをカスタマイズするには

  1. プロジェクトにカスタム Windows ワークフロー (.xaml ファイル) を追加するか、カスタム .xaml ファイルを、%localappdata%\Microsoft*\[AppId]\10.0\Extensions\Microsoft\Entity Framework Tools\DBGen に配置します。[AppId]* は、使用する Visual Studio のエディションによって決まります。

  2. エンティティ デザイナー画面を右クリックして [プロパティ] をクリックします。

  3. [データベース ワークフローの作成] プロパティの値を、プロジェクト ディレクトリに対するカスタム .xaml ファイルの相対パスに設定します。 また、カスタム .xaml ファイルの完全パスも使用できます。 手順 1 に示したパスに配置されたファイルは、プロパティ値 (値は、ファイル名に (User) が追加されたものになります) として使用できます。

    これで、データベース生成ウィザードは、モデルから DDL を生成するときに、指定したワークフローを使用します。 ワークフローは、[DDL 生成テンプレート] プロパティで指定したテキスト テンプレートを使用して SSDL から DDL を生成します。

Dd560887.note(ja-jp,VS.100).gif注 :
データベース生成ウィザードで使用される既定の .xaml ファイルは変更しないでください。ただし、既定の .xaml ファイルのコピーを変更して、前述の手順に従うことはできます。

DDL を生成するには、データベース生成ウィザードを起動します。 詳細については、「方法: 概念モデルからデータベースを生成する (Entity Data Model ツール)」を参照してください。

SSDL からの DDL の生成をカスタマイズするには

  1. プロジェクトにカスタム テキスト テンプレート (.tt ファイル) を追加するか、カスタム テキスト テンプレートを、%localappdata%\Microsoft*\[AppId]\10.0\Extensions\Microsoft\Entity Framework Tools\DBGen に配置します。[AppId]* は、使用する Visual Studio のエディションによって決まります。

    Dd560887.note(ja-jp,VS.100).gif注 :
    プロジェクトに .tt ファイルを追加すると、[セキュリティ警告] が表示されます。詳細については、「テキスト テンプレートのセキュリティ (英語)」を参照してください。

  1. エンティティ デザイナー画面を右クリックして [プロパティ] をクリックします。

  2. [DDL 生成テンプレート] プロパティの値を、プロジェクト ディレクトリに対するカスタム .tt ファイルの相対パスに設定します。 また、カスタム .tt ファイルの完全パスも使用できます。 手順 1 に示したパスに配置されたファイルは、プロパティ値として使用できます。 値は、ファイル名に (User) が追加されたものになります。

    これで、データベース生成ウィザードは、SSDL から DDL を生成するときに、指定したテキスト テンプレートを使用します。

Dd560887.note(ja-jp,VS.100).gif注 :
データベース生成ウィザードで使用される既定の .tt ファイルは変更しないでください。ただし、既定の .tt ファイルのコピーを変更して、上記の手順に従うことはできます。

DDL を生成するには、データベース生成ウィザードを起動します。 詳細については、「方法: 概念モデルからデータベースを生成する (Entity Data Model ツール)」を参照してください。

参照

処理手順

方法: オブジェクトレイヤーのコード生成をカスタマイズする (Entity Data Model デザイナー)

概念

.edmx ファイルの概要 (Entity Framework)
Entity Data Model ツールの拡張

その他のリソース

Windows Workflow Foundation (英語)
ワークフローの開発 (英語)