3

我正在尝试运行初始化代码,但它没有运行。这是我在主要方法中的内容

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

    }

我是否应该在 main 中添加其他内容以使其运行以下代码?当我在调试器中单步执行代码时,它甚至没有进入初始化代码,这让我觉得我错过了一些重要的东西。

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 回答