3

初期化コードを実行しようとしていますが、実行されていません。これが私がメインメソッドに持っているものです

    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);
    }
}
4

1 に答える 1

7

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

于 2012-04-17T04:04:32.703 に答える