0

今天我正在更改我的数据库模型。我修改了大约 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());

我在这个方法中设置了一个断点,它甚至没有命中它!

4

2 回答 2

4

我只是遇到了这个,我以前没有。它让我发疯,直到我弄清楚我在做什么。如果您的模型具有另一个模型的列表,请确保您的模型上有一个构造函数来初始化列表。

于 2013-07-24T03:53:32.283 回答
1

好的。对于进入这里的任何人,这是解决方案:

我不知道它是如何工作的,但我注释掉了我所有的 [ForeignKey] 属性和我所有的流利的 api 配置。然后我开始了这个项目,并通过仅使用流利的 api 修复了它抛出的错误。这有帮助。现在一切正常。

于 2013-02-11T20:16:31.780 回答