我正在尝试运行初始化代码但它没有运行。这是我在main方法中的内容
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);
}
}
答案 0 :(得分:7)
您刚刚告诉EF,在初始化数据库时,它需要使用您的初始化程序,但您没有告诉它实际初始化数据库。在DbContext上执行某些操作时,将初始化数据库。这篇文章很精确地描述了幕后发生的事情:http://blog.oneunicorn.com/2011/04/15/code-first-inside-dbcontext-initialization/(包括有关DbInitializers的详细信息)