我在asp.net WebApi应用程序(REST服务)中第一次使用EF核心,使用SQLite提供程序。我已经安装了Nuget包v2.0.1。
我添加了我的上下文,模型等,一切似乎都在起作用。我现在想尝试使用迁移。在documentation之后我添加了我的迁移,并且似乎已经创建了所有预期的文件。
要测试,我删除了我的SQLite数据库文件并运行应用程序, 但是,当我在代码中调用`Migrate方法时,我得到以下异常......
奇怪的是,当我关闭调试器时,实际上是创建了文件和表。迁移表存在,但没有行。
如果我再次启动,即删除数据库,然后从包管理器控制台运行迁移,那么一切正常,即我看到......
PM> Update-Database
Applying migration '20180301030031_InitialCreate'.
Done.
PM>
a数据库也是创建的,这次Migration表有我期望的数据行..
当我在代码中运行它时,任何人都有任何想法为什么这不起作用?
提前感谢您提供任何帮助
[编辑1]
如果在添加字段后添加新的迁移,我会遇到同样的问题。我第一次跑,我是例外。如果我再运行一次,它就可以了!
答案 0 :(得分:0)
我正在考虑删除这篇文章,因为这个问题似乎神奇地解决了。
我在示例WPF应用程序中运行相同的代码(在同一个数据库文件中)并且没有任何问题,所以它似乎是在IIS进程中运行时(并且在执行iiresets后强制应用程序重新运行初始化然后会调用context.Database.Migrate();
无论如何,它现在似乎有效(但不知道为什么它开始工作)