2010-11-29 8 views
1

私は.net MVC 2.0プロジェクトでEntity Framework 4 Code Firstを使用しています。私が望むのは、私が呼ぶことのできるページです:/ DB/Recreate、それは私の現在のDBを落として空のファイルを作り直すでしょう。現在、私のGlobal.asaxの中で私は自分の行動に私のデータベースの初期化子を切り替えようが、それは既に初期化されなければならないので、私は右のアプローチを使用していることを、本当にわからないんだけどテスト用にEF4コードを使用してDBを最初に再作成するには

protected override void OnApplicationStarted() 
     { 
      Database.SetInitializer(new CreateDatabaseOnlyIfNotExists<CorpiqDb>()); 

      AreaRegistration.RegisterAllAreas(); 

      RegisterRoutes(RouteTable.Routes); 
      RegisterAllControllersIn(Assembly.GetExecutingAssembly()); 
     } 

があります

 Database.SetInitializer(new AlwaysRecreateDatabase<CorpiqDb>()); 
     var bidon = _session.All<Admin>(); 
     Database.SetInitializer(new CreateDatabaseOnlyIfNotExists<CorpiqDb>()); 
     bidon = _session.All<Admin>(); 

私は本当にこれを行う方法を知らない、助けてくれてありがとう!

答えて

2

[OK]を私は解決策を見つけた:

var dbContext = new CorpiqDb().Database ; 
dbContext.Delete(); 
dbContext.Initialize(); 
dbContext.EnsureInitialized(); 
Database.SetInitializer(new CreateDatabaseOnlyIfNotExists<CorpiqDb>()); 

これは私のデータベースをドロップし、最新モデルを反映した新しいものを作成し、私も私のテストのためのいくつかのデータを使用してデータベースをシードすることができます。

+0

回答を投稿していただきありがとうございます。 –

関連する問題