今天我正在更改我的数据库模型。我修改了大约 2 个小时,没有编译它。
所以,我的应用程序中有这个:
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<MyDb>());
通常,当我对模型进行更改时,这样做就足够了:
var tmp = new MyDb();
tmp.Categories.Any();
模型正在重新创造自己。但是现在,在我更改模型后,我收到了一个错误:
你调用的对象是空的。
我完全不知道这是什么意思,因为我正在调用 MyDb(),所以设置了这个实例。这里发生了什么?我怎样才能检查出什么问题?
编辑:我刚刚发现的事情是它甚至没有尝试重新创建数据库。我设置了这个:
public class MyDatabaseInitializer : DropCreateDatabaseIfModelChanges<ScykDb>
{
protected override void Seed(ScykDb context)
{
base.Seed(context);
(code...)
}
}
进入我的 application_start:
Database.SetInitializer(new MyDatabaseInitializer());
我在这个方法中设置了一个断点,它甚至没有命中它!