Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net core 更新数据库不将迁移应用于数据库_.net Core_Entity Framework Migrations_Ef Core 2.2 - Fatal编程技术网

.net core 更新数据库不将迁移应用于数据库

.net core 更新数据库不将迁移应用于数据库,.net-core,entity-framework-migrations,ef-core-2.2,.net Core,Entity Framework Migrations,Ef Core 2.2,对于模型项目中的包: <PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.2.0" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.2.0" /> <PackageReference Include="Microsoft.EntityFrameworkCore.SqlSer

对于模型项目中的包:

<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">
我按如下方式运行命令:

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.
它对数据库没有任何作用。我以为它会增加迁移,但它没有。 我曾经:

在VS2019中,我进行了迁移:

我做了额外的检查:

  • 当我创建空数据库并运行相同的命令时,它只在那里创建了空的
    \uu EFMigrationsHistory
  • 我重新安装了所有nuget软件包,但没有任何帮助

  • sb能帮我弄清楚为什么它不应用上次迁移吗

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


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

    我的同事似乎添加了代码:

    <PropertyGroup>
        <DefaultItemExcludes Condition="'$(Configuration)' == 'Debug' ">Migrations\**\*.Designer.cs</DefaultItemExcludes>
    </PropertyGroup>
    
    
    迁移\***.Designer.cs
    
    优化CICD中的构建时间。
    这导致ef工具无法发现迁移。

    使用上下文“DalContext”是我所期望的。我在“TdcDalContext”的解决方案中没有迁移。在运行更新数据库时,使用“[DbContext(typeof(TdcDalContext))]”属性附加“DalContext”迁移不会产生任何影响。我试图通过命令
    updatedatabase-project Geotik.DAL.DbAL-Context-DalContext-Verbose
    爆炸性地指示迁移项目,但我得到了与以前相同的结果。有趣的是,我的同事使用相同的命令在相同的repo状态下执行了测试,他能够成功地更新数据库。代码或运行update命令似乎没有问题。在您提出建议之前,默认情况下,我们没有在迁移过程中添加此属性
    imiglationscodegenerator
    。I我们的项目
    TdcDalContext
    是只读的,这就是为什么我们没有针对它的迁移。
    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.
    
    <PropertyGroup>
        <DefaultItemExcludes Condition="'$(Configuration)' == 'Debug' ">Migrations\**\*.Designer.cs</DefaultItemExcludes>
    </PropertyGroup>