使用实体框架的UWP应用程序sqlite。一切都很好,但希望为将来的更新添加迁移。
这里的步骤如下:https://stackoverflow.com/a/68759414/9068892
我能够添加一个迁移,它实际上创建了一个带有迁移和SVContextModelSnapshot.cs文件的Migrations文件夹。一切看起来都很好。
现在,如果我做了一个更改(或者不做),然后运行Add-Migration Test,它就会创建一个新的迁移,但是就好像没有每个现有的状态一样。它为每个模型做了一个CreateTable,并从头开始重做整个数据库。这显然是错误的,我只希望看到我的单列被添加。添加一个-verbose标记并不会显示出任何令人惊讶的东西。
做一个“移除-Migraiton”会给我一些错误的提示,因为它给了我错误。
未发现ModelSnapshot。
看看Remove-Mgiraiton -verbose和Add-Migration Test -Verbose,所有的路径看起来都很好。快照文件就在那儿。它似乎没有被使用过。
Remove-Migration -verbose
Using project 'Data'.
Using startup project 'MigrationProj'.
Build started...
Build succeeded.
C:\Program Files\dotnet\dotnet.exe exec --depsfile C:\dev\Sample\UWPApp\MigrationProj\bin\Debug\net6.0\MigrationProj.deps.json --additionalprobingpath C:\Users\SomeUser\.nuget\packages --additionalprobingpath "C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages" --additionalprobingpath "C:\Program Files (x86)\Microsoft\Xamarin\NuGet" --additionalprobingpath "C:\Program Files\dotnet\sdk\NuGetFallbackFolder" --runtimeconfig C:\dev\Sample\UWPApp\MigrationProj\bin\Debug\net6.0\MigrationProj.runtimeconfig.json C:\Users\SomeUser\.nuget\packages\microsoft.entityframeworkcore.tools\3.1.25\tools\netcoreapp2.0\any\ef.dll migrations remove --json --verbose --no-color --prefix-output --assembly C:\dev\Sample\UWPApp\MigrationProj\bin\Debug\net6.0\Data.dll --startup-assembly C:\dev\Sample\UWPApp\MigrationProj\bin\Debug\net6.0\MigrationProj.dll --project-dir C:\dev\Sample\UWPApp\Data\ --language C# --working-dir C:\dev\Sample\UWPApp --root-namespace Data
Using assembly 'Data'.
Using startup assembly 'MigrationProj'.
Using application base 'C:\dev\Sample\UWPApp\MigrationProj\bin\Debug\net6.0'.
Using working directory 'C:\dev\Sample\UWPApp\MigrationProj'.
Using root namespace 'Data'.
Using project directory 'C:\dev\Sample\UWPApp\Data\'.
Finding DbContext classes...
Finding IDesignTimeDbContextFactory implementations...
Finding application service provider...
Finding Microsoft.Extensions.Hosting service provider...
No static method 'CreateHostBuilder(string[])' was found on class 'Program'.
No application service provider was found.
Finding DbContext classes in the project...
Found DbContext 'SVContext'.
Using context 'SVContext'.
Finding design-time services for provider 'Microsoft.EntityFrameworkCore.Sqlite'...
Using design-time services from provider 'Microsoft.EntityFrameworkCore.Sqlite'.
Finding design-time services referenced by assembly 'MigrationProj'.
No referenced design-time services were found.
Finding IDesignTimeServices implementations in assembly 'MigrationProj'...
No design-time services were found.
'SVContext' disposed.
Microsoft.EntityFrameworkCore.Design.OperationException: No ModelSnapshot was found.
at Microsoft.EntityFrameworkCore.Migrations.Design.MigrationsScaffolder.RemoveMigration(String projectDir, String rootNamespace, Boolean force, String language)
at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.RemoveMigration(String contextType, Boolean force)
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.RemoveMigrationImpl(String contextType, Boolean force)
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.RemoveMigration.<>c__DisplayClass0_0.<.ctor>b__0()
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.<>c__DisplayClass3_0`1.<Execute>b__0()
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
No ModelSnapshot was found.发布于 2022-05-12 13:56:20
通过删除".vs“文件夹并重新启动VS解决了问题。
https://stackoverflow.com/questions/72192395
复制相似问题