ASP.NET MVC 既存データベースでEFコードファーストを使用してみた
ASP.NET MVC 3 Tools UpdateによるEF コードファーストとデータスキャフォールディング
を参考として、タイトル通りのことをやってみました。
まずは、自分への備忘録も兼ねて、EFコードファースト、データスキャフォールディングについて
メモっておきます。
EFコードファーストでは、「コードファースト」の言葉通り、コードを用いてデータ構造を定義します。
データセットやXMLなどは使いません。
ASP.NET MVC の場合はModelのコードでデータ構造を定義し、
・テーブルをクラスに
・カラムをプロパティに
・テーブル同士の関連をassociationプロパティに
それぞれ定義します。
また「スキャフォールド」(Scaffold)は「足場」を意味します。
要は、データ駆動開発における「足場」として用いることができる技術だと言えると思います。
既存のデータベースに接続する方法ですが、EFコードファーストでは
DBContextクラス名とWeb.config内の接続文字列名を同じにしておきます。
ASP.NET MVC 3 Tools UpdateによるEF コードファーストとデータスキャフォールディング
では、DBContextクラス名は「StoreContext」なので、接続文字列は以下のようにしました。
Web.config
SQL ServerはWindows認証の場合です。塗りつぶしたところには、マシン名を入れてください。
・・・ちなみに、既存のテーブルのカラム名を、Modelのプロパティ名が違うと、以下のエラーとなります。
System.Data.EntityCommandExecutionException はユーザー コードによってハンドルされませんでした。
コマンド定義を実行中にエラーが発生しました。詳細については、内部例外を参照してください。
もう少し分かりやすい例外を出してくれてもいいのに・・・。