无法注册 IRelationalTypeMappingSource

Alm*_*ran 5 c# dbcontext entity-framework-core razor-pages

System.InvalidOperationException: '数据库提供程序试图注册'IRelationalTypeMappingSource' 服务的实现。这不是实体框架定义的服务,因此必须使用“TryAddProviderSpecificServices”方法注册为特定于提供者的服务。

这是我在 DbContext 中运行页面时的例外情况。

该网站是 Razor Pages。

网站运行良好,我没有改变任何东西,现在发生了。

这是 .csproj

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="1.0.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.10" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.10">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.4" />
    <PackageReference Include="Microsoft.Windows.Compatibility" Version="5.0.0" />
  </ItemGroup>

</Project>
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这个问题?

Eri*_*kEJ 12

您正在混合版本,并引用太多包。改成这样:

<ItemGroup>
    <PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="1.0.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.10" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.10">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.4" />
    <PackageReference Include="Microsoft.Windows.Compatibility" Version="3.1.1" />
  </ItemGroup>
Run Code Online (Sandbox Code Playgroud)