データイニシャライザ

「データイニシャライザ」の編集履歴(バックアップ)一覧はこちら

データイニシャライザ」(2015/12/31 (木) 00:51:10) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

イニシャライザは、任意の時点でデータベースを初期化するためのクラス。 テスト時に便利である。 **初期化のタイミング 初期化をするタイミングには3種類あり、それぞれ別のクラスを継承しなければならない なお、これらのクラスは全てIDatabaseInitializerインターフェースを実装している |初期化のタイミング|継承先| |データベースが存在しない場合|CreateDatabaseIfNotExists<TContext>| |アプリケーション実行時に常に|DropCreateDatabasaAlways<TContexi>| |モデルが変更された時|DropCreateDatabasaIfModelChanges<TContext>| **Seedメソッド 初期化するにはイニシャライザーの中でSeedメソッドをオーバーライドする |名前|Seed| |所属|IDatabaseInitializerインターフェースを実装したクラス| |役割|テーブルの初期値をデータコンテキストに挿入し、テーブルに反映させる| |引数|TContext| |返り値|void| (例) >protected ovveride void Seed(TContext context) >{ > //リストを作る > var members = new List<Member>{}; > > //コンテキストのプロパティに登録する > members.Foreach(m => context.Members.Add(m)); > > //DBに登録する > context.SaveChanges(); >} **イニシャライザーの登録 イニシャライザーは作っただけでは動かない。 Global.asaxに登録する必要がある (例) >protected void Application_Start() >{ > Database.SetInitializer<TContext>(new TInitializer); >}
イニシャライザは、任意の時点でデータベースを初期化するためのクラス。 テスト時に便利である。 **初期化のタイミング 初期化をするタイミングには3種類あり、それぞれ別のクラスを継承しなければならない なお、これらのクラスは全てIDatabaseInitializerインターフェースを実装している |初期化のタイミング|継承先| |データベースが存在しない場合|CreateDatabaseIfNotExists<TContext>| |アプリケーション実行時に常に|DropCreateDatabasaAlways<TContexi>| |モデルが変更された時|DropCreateDatabasaIfModelChanges<TContext>| **Seedメソッド 初期化するにはイニシャライザーの中でSeedメソッドをオーバーライドする |名前|Seed| |所属|IDatabaseInitializerインターフェースを実装したクラス| |役割|テーブルの初期値をデータコンテキストに挿入し、テーブルに反映させる| |引数|TContext| |返り値|void| (例) >protected override void Seed(TContext context) >{ > //リストを作る > var members = new List<Member>{}; > > //コンテキストのプロパティに登録する > members.Foreach(m => context.Members.Add(m)); > > //DBに登録する > context.SaveChanges(); >} **イニシャライザーの登録 イニシャライザーは作っただけでは動かない。 Global.asaxに登録する必要がある (例) >protected void Application_Start() >{ > Database.SetInitializer<TContext>(new TInitializer); >}

表示オプション

横に並べて表示:
変化行の前後のみ表示: