从asp.net代码运行迁移的EF Core会引发异常

时间:2018-03-01 03:59:40

标签: asp.net entity-framework-core entity-framework-core-migrations

我在asp.net WebApi应用程序(REST服务)中第一次使用EF核心,使用SQLite提供程序。我已经安装了Nuget包v2.0.1。

我添加了我的上下文,模型等,一切似乎都在起作用。我现在想尝试使用迁移。在documentation之后我添加了我的迁移,并且似乎已经创建了所有预期的文件。

要测试,我删除了我的SQLite数据库文件并运行应用程序, 但是,当我在代码中调用`Migrate方法时,我得到以下异常......

enter image description here

奇怪的是,当我关闭调试器时,实际上是创建了文件和表。迁移表存在,但没有行。

如果我再次启动,即删除数据库,然后从包管理器控制台运行迁移,那么一切正常,即我看到......

    PM> Update-Database
    Applying migration '20180301030031_InitialCreate'.
    Done.
    PM> 

a数据库也是创建的,这次Migration表有我期望的数据行..

enter image description here

当我在代码中运行它时,任何人都有任何想法为什么这不起作用?

提前感谢您提供任何帮助

[编辑1]

如果在添加字段后添加新的迁移,我会遇到同样的问题。我第一次跑,我是例外。如果我再运行一次,它就可以了!

1 个答案:

答案 0 :(得分:0)

我正在考虑删除这篇文章,因为这个问题似乎神奇地解决了。

我在示例WPF应用程序中运行相同的代码(在同一个数据库文件中)并且没有任何问题,所以它似乎是在IIS进程中运行时(并且在执行iiresets后强制应用程序重新运行初始化然后会调用context.Database.Migrate();

的代码

无论如何,它现在似乎有效(但不知道为什么它开始工作)