Entity framework 实体框架代码优先:使用控制台应用程序初始化数据库

Entity framework 实体框架代码优先:使用控制台应用程序初始化数据库,entity-framework,code-first,Entity Framework,Code First,我正在尝试运行初始化代码,但它没有运行。这是我在主方法中得到的 static void Main(string[] args) { Database.SetInitializer<Context>(new RecipesSeedData()); } static void Main(字符串[]args) { SetInitializer(new recipes seeddata()); } 我是否应该在main中添加其他内容以使其运行以下

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

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

    }
static void Main(字符串[]args)
{
SetInitializer(new recipes seeddata());
}
我是否应该在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);
    }
}
公共类RecipesedData:DropCreateDatabaseAlways
{
受保护的覆盖无效种子(上下文)
{
var mt=new MenuType{MenuTypeId=1};
context.MenuTypes.Add(mt);
种子(上下文);
}
}

您刚才告诉EF在初始化数据库时需要使用初始值设定项,但您没有告诉EF实际初始化数据库。在DbContext上执行某些操作时,数据库将被初始化。这里有一篇很好的帖子,它准确地描述了引擎盖下发生的事情:(包括dbinitializer的详细信息)

很好的帖子!我一直在找这样的东西。非常感谢。