2012-04-17 11 views
3

初期化コードを実行しようとしていて、実行されていません。ここで私は、mainメソッドに持っているものEntity Frameworkコード1:コンソールアプリケーションを使用したデータベースの初期化

static void Main(string[] args) 
    { 
     Database.SetInitializer<Context>(new RecipesSeedData()); 

    } 

だ私はそれが以下のコード を実行するために取得するには、メインに何かを置くことになっているだろうか?デバッガでコードをステップ実行すると、初期化コードに到達しないため、重要なものが見つからないように感じられます。

public class RecipesSeedData : DropCreateDatabaseAlways<Context> 
{ 
    protected override void Seed(Context context) 
    { 
     var mt = new MenuType {MenuTypeId = 1}; 

     context.MenuTypes.Add(mt); 

     base.Seed(context); 
    } 
} 

答えて

7

データベースを初期化するときにイニシャライザを使用する必要がありますが、実際にデータベースを初期化するように指定していないとEFに伝えました。データベースは、DbContextで何らかの操作を行うと初期化されます。フードの下で何が起こっているかを正確に記述する素晴らしい投稿があります:http://blog.oneunicorn.com/2011/04/15/code-first-inside-dbcontext-initialization/(DbInitializersの詳細を含む)

+0

素晴らしい投稿です!私はこのようなものを探してきました。ありがとうございました! – Robert

関連する問題