データベースの変更時に EDM を更新する方法

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

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

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

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

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

データベースの変更時に EDM を更新するには

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

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

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

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

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

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

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

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

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

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

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

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

[!メモ]

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

参照

概念

モデルの更新ウィザードによる EDM に対する変更

その他のリソース

ADO.NET Entity Data Model デザイナ
Entity Data Model ツールのタスク
ADO.NET Entity Data Model デザイナのシナリオ