方法: データベースの変更時に .edmx ファイルを更新する (Entity Data Model ツール)

ADO.NET Entity Data Model デザイナー (エンティティ デザイナー) では、モデルの更新ウィザードを使用して、データベースに対する変更を基に .edmx ファイルを更新できます。 モデルの更新ウィザードでは、この処理の一部としてストレージ モデルが上書きされます。 モデルの更新ウィザードでは概念モデルとマッピングも一部変更されますが、これらが変更されるのはデータベースにオブジェクトが追加された場合のみです。 たとえば、データベースにテーブルが追加されると新しいエンティティ型が概念モデルに追加され、テーブルに列が追加されると新しいプロパティがエンティティ型に追加されます。 .edmx ファイルに対する変更内容の詳細については、「モデルの更新ウィザードによる .edmx ファイルに対する変更」を参照してください。

モデルの更新ウィザードは、次の処理を行います。

  • データベースからオブジェクトが削除された場合、ストレージ モデルからそのオブジェクトを削除します。 マッピング スキーマは、存在しなくなったストレージ要素に概念モデルのオブジェクトがマップされないように更新されます。 既存の概念モデル オブジェクトは削除されません。

  • データベースにオブジェクトが追加された場合 (つまり、前のモデルには含まれていなかったオブジェクトがある場合)、モデルにそのオブジェクトを追加できます。 ストレージ モデルは、新しく追加されたオブジェクトで更新されます。 テーブルやビューの場合 (ストアド プロシージャは除く)、対応するエンティティ型が作成されてオブジェクトにマップされます。

  • オブジェクトが更新された場合、ストレージ モデルのオブジェクト定義を更新します。 テーブルまたはビューに新しい列が追加された場合は、対応するエンティティ型が、一致するプロパティで更新されます。 対応するエンティティ型が継承階層の一部である場合は、影響を受けるエンティティのうち階層のルートに最も近いエンティティのみが、一致するプロパティで更新されます。 これにより、同じ階層に含まれる複数の子エンティティに対して同じプロパティが祖先として定義される状況を回避します。

データベースの変更時に .edmx ファイルを更新するには

  1. モデル ブラウザーで、.edmx ファイルを右クリックし、[データベースからモデルを更新] を選択します。

    モデルの更新ウィザードが開始されます。 データベース接続が指定されていない場合、[データベース接続の選択] ダイアログ ボックスが表示されます。 指定されている場合は、[データベース オブジェクトの選択] ダイアログ ボックスが表示されます。

  2. [データベース接続の選択] ダイアログ ボックスが表示された場合、データベース接続を指定します。 それ以外の場合は、次の手順に進みます。

    接続の指定の詳細については、「[データ接続の選択] ダイアログ ボックス (Entity Data Model ウィザード)」を参照してください。 接続を指定したら、[次へ] をクリックします。[データベース オブジェクトの選択] ダイアログ ボックスが表示されます。

  3. [追加] タブをクリックします。

    テーブル、ビュー、およびストアド プロシージャを表すノードが表示されます。 データベースにオブジェクトが追加された場合 (つまり、前のストレージ モデルには含まれていなかったオブジェクトがある場合)、対応するノードを展開すると、概念モデルに追加するために使用できるオブジェクトを表示できます。

    Cc716697.note(ja-jp,VS.100).gif注 :
    概念モデルからオブジェクトが削除されたものの、ストレージ モデルからは削除されていない場合、オブジェクトを概念モデルに追加するために使用することはできません。詳細については、「方法: ストレージ モデルからオブジェクトを削除する (Entity Data Model ツール)」を参照してください。

  4. [テーブル][ビュー]、および [ストアド プロシージャ] ノードを展開し、.edmx ファイルに追加するオブジェクトのチェックボックスをオンにします。

  5. [更新] タブをクリックします。

    既存のストレージ モデルに含まれるテーブル、ビュー、およびストアド プロシージャを表すノードが表示されます。 これらのデータベース オブジェクトに対して行った変更は、更新後のストレージ モデルに反映されます。 テーブルまたはビューに列を追加した場合は、概念モデルに対する変更が行われます。

  6. [削除] タブをクリックします。

    テーブル、ビュー、およびストアド プロシージャを表すノードが表示されます。 前のストレージ モデルに含まれていたオブジェクトがデータベースから削除された場合、対応するノードを展開できます。 これらのノードに含まれるオブジェクトは、更新後のモデルから削除されます。

  7. [完了] をクリックして、データベースの変更内容に基づいて .edmx ファイルを更新します。

Cc716697.note(ja-jp,VS.100).gif注 :
概念モデルは、データベースにオブジェクトが追加された場合のみ更新されます。概念モデルに対するその他のすべての変更は手動で行う必要があります。概念モデルの更新については、「Entity Data Model ツールのタスク」を参照してください。

参照

概念

ADO.NET Entity Data Model デザイナー
モデルの更新ウィザードによる .edmx ファイルに対する変更

その他のリソース

Entity Data Model ツールのタスク
Entity Data Model ツールのシナリオ