ピースペース

EF コードファースト事始め

leave a comment »

コードファーストってのは、とにかくModelはコードで書く
でもって、コードで書いたModelからDBを生成することができる

手順は
http://www.atmarkit.co.jp/fdotnet/aspnetmvc3/aspnetmvc3_03/aspnetmvc3_03_01.html

  • Modelクラスを作成する
  • DBContext派生のContextクラスを作成する
    • 定義したModelのDBSetを定義する
  • DropCreateDatabaseIfModelChanges派生のInitializerクラスを定義する
    • SeedメソッドをOverrideしてテストデータを作成する
    • Initializerクラスの定義は任意で、テストデータを作成せずただTableを生成するだけなら不要
  • Web.ConfigにConnectionStringを追加する
    • 接続名をDBContextクラス名と同じにする
  • Global.asaxのStartメソッドでDatabase.SetInitializerする
    • 実際にDBをDrop&Createするのはこのメソッド
    • DBの生成が必要なければSetInitializerしない

ObjectContext→DBContextになって
EDMもなくなった

ようするに、DBファーストで生成していたEDMの中をコードで書くようにした
コードで書いたModel/ContextからDBを生成することができる
が、「DBを生成」は任意で
既にDBがあって、そのDBにアクセスするModel/Contextを手書きしても良い
ただし、間違えなければ

ASP.NET MVC3のControllerを作成時にEDMのEntityを指定する方法がわからない
ので、EDMはもう忘れてしまっていいのかな??

そう何度も書くものでないので
自分で書いたほうが何をやってるのか?も理解しやすいので書きましょう!→Model
デザイナーで定義するのがそう簡単なわけでもないし、なら書きましょう!→Model
ってことだ→コードファースト

DBが既にある場合は、もちろんコードファーストとは言わないのだろうが
その場合でも、注意してModelを書けばPOCOなModel&DBContextで既存DBに接続することはできる

Written by nasu38yen

2011年7月7日 @ 7:05 PM

カテゴリー: 未分類

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。