繁体   English   中英

在 .NET 6.0 和 EF Core 中使用 MySQL 的正确封装版本是什么?

[英]What is the correct pacakge versions to use MySQL in .NET 6.0 and EF Core?

我正在尝试将 .NET 5.0 API 服务器项目升级到 .NET 6.0,并且我有一个这样的 csproj 文件:

...
  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
      <GenerateDocumentationFile>true</GenerateDocumentationFile>
      <NoWarn>$(NoWarn);1591</NoWarn>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="BCrypt-Official" Version="0.1.109" />
    <PackageReference Include="CryptSharpOfficial" Version="2.1.0" />
    <PackageReference Include="Microsoft.AspNet.Mvc" Version="5.2.7" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Versioning" Version="5.0.0" />
    <PackageReference Include="Microsoft.AspNetCore.Session" Version="2.2.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="6.0.0">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="6.0.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="6.0.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.0">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="6.0.0" />
    <PackageReference Include="Microsoft.Extensions.Logging" Version="6.0.0" />
    <PackageReference Include="Microsoft.OpenApi" Version="1.2.3" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.5" />
    <PackageReference Include="MongoDB.Driver" Version="2.13.1" />
    <PackageReference Include="MongoDB.Driver.Core" Version="2.13.1" />
    <PackageReference Include="MySql.Data.EntityFrameworkCore" Version="8.0.22" />
    <PackageReference Include="MySql.EntityFrameworkCore" Version="5.0.8" />
    <PackageReference Include="MySqlConnector" Version="2.0.0" />
    <PackageReference Include="NLog" Version="4.7.12" />
    <PackageReference Include="NLog.Extensions.Logging" Version="1.7.4" />
    <PackageReference Include="NLog.Web.AspNetCore" Version="4.14.0" />
    <PackageReference Include="NUnit" Version="3.13.2" />
    <PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="6.0.0" />
    <PackageReference Include="StyleCop.Analyzers" Version="1.1.118">
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
    <PackageReference Include="Swashbuckle.AspNetCore" Version="6.2.1" />
  </ItemGroup>
...

然后当我执行代码时,我得到异常:

System.TypeLoadException:来自程序集'MySql.EntityFrameworkCore,版本= 5.0.8.0,文化=中性,PublicKeyToken = c5687fc88969c44d'的'MySql.EntityFrameworkCore.MySQLUpdateSqlGenerator'类型中的'方法'AppendIdentityWhereCondition'没有实现。

当我创建一个新的 DbContext。 构造函数异常

此外,还有另一个非常大的 DbContext 使用旧方法,我想在不修改它们的情况下保持它们的工作。

好像我使用了错误版本的 MySQL 库,但我不知道我做错了什么。 如何正确设置 MySQL 连接器?

Pomelo 用于 MySQL 6.0.0 而不是刚刚工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM