こんにちは、Noyです。ASP.NET MVCでアプリを自作しながら勉強しています。
今回はデータベースファーストで作ったモデルにデータベースの変更を反映させる必要が出たので、調べたやり方を備忘録としてまとめたいと思います。
## 前提：私の環境
以下手順で作成したモデルを使用しています。
(1)新しい項目の追加>「ADO.NET Entity Data Model」を選択
(2)モデルのコンテンツの選択>「データベースからEF Designer」を選択
(3)データ接続の選択>作成済みのDB (DB名：YumeSetori）を選択
(4)データベースオブジェクトと設定の選択>「テーブル」にチェック
その結果、ソリューションエクスプローラーには以下のようにコンテキストとモデルが生成されています。
## データベース構成を変更する
それでは本題です。今回はあるテーブルの列のデータ型を変えたいと思います。
(1)SSMSのオブジェクトエクスプローラー>テーブルの列で右クリック>「変更」を選択
(2)データ型を「date」から「char(10)」に変更
## データベース構成の変更をモデルに反映
(1)デザイナー画面(edmx)を開く
(2)変更を反映させるテーブルの列をクリックしてプロパティを開く
(3)プロパティ>型を「DateTime」から「String」に変更する
※これをやらないと後の手順でエラーになります。
(4) デザイナー画面で右クリック>「データベースからモデルを更新」をクリック
(5)更新ウィザード>更新>更新したいテーブルを選択
これでモデルにもしっかり反映されます。