Update-Database不会将迁移应用于数据库

问题描述 投票:0回答:1

对于模型项目中的软件包:

<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.2.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.2.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.2.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.2.0">

with

 <TargetFramework>netcoreapp2.2</TargetFramework>

在计算机上安装了sdk的情况:

C:\WINDOWS\system32> dotnet --list-sdks
2.1.202 [C:\Program Files\dotnet\sdk]
2.1.504 [C:\Program Files\dotnet\sdk]
2.1.505 [C:\Program Files\dotnet\sdk]
2.1.602 [C:\Program Files\dotnet\sdk]
2.1.604 [C:\Program Files\dotnet\sdk]
2.1.700 [C:\Program Files\dotnet\sdk]
2.1.801 [C:\Program Files\dotnet\sdk]
2.1.802 [C:\Program Files\dotnet\sdk]
2.2.104 [C:\Program Files\dotnet\sdk]
2.2.207 [C:\Program Files\dotnet\sdk]
3.1.101 [C:\Program Files\dotnet\sdk]

我如下运行命令:

PM> Update-Database -Context DalContext -Verbose
Using project 'DAL\Geotik.DAL.DbAL'.
Using startup project 'WebApis\Geotik.WebApis.GeotikApi'.
Build started...
Build succeeded.
C:\Program Files\dotnet\dotnet.exe exec --depsfile D:\Repos\Geotik\Geotik\WebApis\Geotik.WebApis.GeotikApi\Geotik.WebApis.GeotikApi\bin\Debug\netcoreapp2.2\Geotik.WebApis.GeotikApi.deps.json --additionalprobingpath C:\Users\HubertWojtowiczGeoti\.nuget\packages --additionalprobingpath "C:\Program Files\dotnet\sdk\NuGetFallbackFolder" --runtimeconfig D:\Repos\Geotik\Geotik\WebApis\Geotik.WebApis.GeotikApi\Geotik.WebApis.GeotikApi\bin\Debug\netcoreapp2.2\Geotik.WebApis.GeotikApi.runtimeconfig.json "C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.entityframeworkcore.tools\2.2.0\tools\netcoreapp2.0\any\ef.dll" database update --context DalContext --verbose --no-color --prefix-output --assembly D:\Repos\Geotik\Geotik\WebApis\Geotik.WebApis.GeotikApi\Geotik.WebApis.GeotikApi\bin\Debug\netcoreapp2.2\Geotik.DAL.DbAL.dll --startup-assembly D:\Repos\Geotik\Geotik\WebApis\Geotik.WebApis.GeotikApi\Geotik.WebApis.GeotikApi\bin\Debug\netcoreapp2.2\Geotik.WebApis.GeotikApi.dll --project-dir D:\Repos\Geotik\Geotik\DAL\Geotik.DAL.DbAL\ --language C# --working-dir D:\Repos\Geotik\Geotik --root-namespace Geotik.DAL.DbAL
Using assembly 'Geotik.DAL.DbAL'.
Using startup assembly 'Geotik.WebApis.GeotikApi'.
Using application base 'D:\Repos\Geotik\Geotik\WebApis\Geotik.WebApis.GeotikApi\Geotik.WebApis.GeotikApi\bin\Debug\netcoreapp2.2'.
Using working directory 'D:\Repos\Geotik\Geotik\WebApis\Geotik.WebApis.GeotikApi\Geotik.WebApis.GeotikApi'.
Using root namespace 'Geotik.DAL.DbAL'.
Using project directory 'D:\Repos\Geotik\Geotik\DAL\Geotik.DAL.DbAL\'.
Finding DbContext classes...
Finding IDesignTimeDbContextFactory implementations...
Finding application service provider...
Finding IWebHost accessor...
Using environment 'Development'.
Using application service provider from IWebHost accessor on 'Program'.
Found DbContext 'DalContext'.
Found DbContext 'TdcDalContext'.
Finding DbContext classes in the project...
Using context 'DalContext'.
Finding design-time services for provider 'Microsoft.EntityFrameworkCore.SqlServer'...
Using design-time services from provider 'Microsoft.EntityFrameworkCore.SqlServer'.
Finding design-time services referenced by assembly 'Geotik.WebApis.GeotikApi'.
No referenced design-time services were found.
Finding IDesignTimeServices implementations in assembly 'Geotik.WebApis.GeotikApi'...
No design-time services were found.
Done.

它对数据库不执行任何操作。我以为它将增加迁移,但没有。我以前有:enter image description here

在VS2019中,我有迁移:

enter image description here

我做了其他检查:

  1. [当我创建空数据库并运行相同的命令时,它仅在其中创建了空__EFMigrationsHistory表。
  2. 我重新安装了所有nuget软件包,但没有帮助。

某人能否请我帮忙弄清楚为什么它不适用于上次迁移20200227120415_ChangeMergeStatusIdCollumnInFuelingMergeTable

.net-core ef-migrations ef-core-2.2
1个回答
0
投票

听起来好像找不到您的迁移类。

找到DbContext'DalContext'。找到了DbContext'TdcDalContext'。使用上下文“ DalContext”。

您的迁移是否用[DbContext(typeof(TdcDalContext))]而不是DalContext注释?

© www.soinside.com 2019 - 2024. All rights reserved.