2011-08-10 15 views
3

何らかの理由により、DBが作成されていないため、エラーが表示されません。 エンティティフレームワーク「コードファースト」でデータベースをシードまたは作成していない - エラーなし

public class MenuManagerServiceInitializer : CreateDatabaseIfNotExists<MenuManagerContext> 
{ 
    //BREAKPOINT NEVER HITS. BAD 
    protected override void Seed(MenuManagerContext context) 
    { 
     context.Chains.Add(...); 

     context.SaveChanges(); 

     base.Seed(context); 
    } 
} 

任意のアイデア

は、データベースがない理由...

protected void Application_Start(object sender, EventArgs e) 
{ 
    //BREAKPOINT HITS. GOOD 
    Database.SetInitializer<MenuManagerContext>(new MenuManagerServiceInitializer()); 
} 

:私はglobal.asax.caファイルにDBを初期化するためにTringの "SQL Serverの"

を使用しています作成されていますか?私もエラーがないので、間違っていることを伝えるのは非常に難しいです...

答えて

8

Database.SetInitializerデータベースが作成されません。それは初期化戦略を設定するだけです。

DBは、クエリを発行したり、コンテキストにオブジェクトを追加または追加したりするなど、初めてコンテキストを使用する場合に作成されます。

+0

あなたのコンテキストを介してデータを返すアクションの呼び出し、感謝を作ろう! – Pieter

+0

私は上記のような場合があります。それはうまく動作する前に。私は約15のエンティティを追加しました。その後、dbの作成は停止します。エラーは表示されません。 dbは作成されません。しかし、ONModelCreatingはコンテキストで呼び出されます。 これはどうして起こるのでしょうか? – DineshNS

+1

@ DineshN.Samarathunga:わかりません。私は、新しい質問で問題を尋ねて説明することをお勧めします。 – Slauma

1

これは絶対に私は気が狂った

public ActionResult Index() 
{ 
    //should trigger call to MenuManagerServiceInitializer.Seed() 
    return View(new MenuManagerContext().Chains.ToList()) 
} 
関連する問題