Ef Core 模型快照缓存或不同步
Ef Core Model Snapshot caching or is out of Sync
我正在使用 efcore 并且我从现有数据库搭建了脚手架,但是当我这样做时我忘记了进行初始迁移所以它选择了我的新模型。我决定将它们分开,所以我删除了迁移,删除了快照,现在每次我创建另一个迁移时,它仍然包含新模型。
除此之外,使用 dotnet ef migrations list
将列出不再存在的挂起迁移。如果我这样做 dotnet ef database update
,它们将被“迁移”并显示在 __MigrationHistory 中,但同样,它们实际上并不存在于目录中。
我尝试再次创建文件,将 class 名称添加到文件中,执行 dotnet ef migrations remove
,但我仍然遇到同样的问题。它会删除文件,告诉我一切都回滚了,但是文件仍然会被列为待处理,如果我以后进行任何迁移,数据库快照仍将包含新的 table(不存在) .
不太确定如何进行。我读过的所有内容都说,如果我删除快照和迁移,它将创建一个新的快照,但它似乎并没有这样做。这些东西缓存在本地某处我可以清除吗?
当然是在发帖之后,我明白了。
我的问题是我保留了带有 --no-build
标志的 运行 dotnet ef
命令,因为它们会失败。我知道他们失败的原因,这没什么大不了的,但显然这也阻止了快照更新。
所以我通过暂时从我的文件夹中取出有问题的文件来修复它,运行 dotnet ef migrations list
,并且通过成功构建,它解决了我遇到的所有问题。
我正在使用 efcore 并且我从现有数据库搭建了脚手架,但是当我这样做时我忘记了进行初始迁移所以它选择了我的新模型。我决定将它们分开,所以我删除了迁移,删除了快照,现在每次我创建另一个迁移时,它仍然包含新模型。
除此之外,使用 dotnet ef migrations list
将列出不再存在的挂起迁移。如果我这样做 dotnet ef database update
,它们将被“迁移”并显示在 __MigrationHistory 中,但同样,它们实际上并不存在于目录中。
我尝试再次创建文件,将 class 名称添加到文件中,执行 dotnet ef migrations remove
,但我仍然遇到同样的问题。它会删除文件,告诉我一切都回滚了,但是文件仍然会被列为待处理,如果我以后进行任何迁移,数据库快照仍将包含新的 table(不存在) .
不太确定如何进行。我读过的所有内容都说,如果我删除快照和迁移,它将创建一个新的快照,但它似乎并没有这样做。这些东西缓存在本地某处我可以清除吗?
当然是在发帖之后,我明白了。
我的问题是我保留了带有 --no-build
标志的 运行 dotnet ef
命令,因为它们会失败。我知道他们失败的原因,这没什么大不了的,但显然这也阻止了快照更新。
所以我通过暂时从我的文件夹中取出有问题的文件来修复它,运行 dotnet ef migrations list
,并且通过成功构建,它解决了我遇到的所有问题。