為 UWP 應用程式 sqlite 使用物體框架。一切都很好,但想為將來的更新添加遷移。
以下步驟:https ://stackoverflow.com/a/68759414/9068892
我能夠添加一個遷移,它實際上創建了一個帶有遷移和 SVContextModelSnapshot.cs 檔案的 Migrations 檔案夾。一切似乎都很好。
現在,如果我進行更改(或不進行更改)然后運行Add-Migration Test,它會創建一個新的遷移,但好像沒有現有狀態。它為每個模型創建一個 CreateTable,并從頭開始重新制作整個資料庫。這顯然是錯誤的,我希望只看到添加了我的單列。添加 -verbose 標記并不令人驚訝。
執行“Remove-Migraiton”給了我一些遺漏的提示,因為它給出了錯誤
未找到模型快照。
查看Remove-Mgiraiton -verboseand 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.
uj5u.com熱心網友回復:
通過洗掉“.vs”檔案夾并重新啟動 VS 解決了問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/473957.html
