使用EFCore搭建MySql数据库的问题-找不到方法:VoidMicrosoft.EntityFrameworkCore.Storage.RelationalTypeMapping

c#

我正在尝试首先在 Visual Studio 2019 中的 .NET Core 3.1 上使用MySql.Data.EntityFrameworkCore和搭建 MySql 数据库代码。Microsoft.EntityFrameworkCore但是,我不断收到以下错误:

找不到方法:'Void Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping..ctor(System.String, System.Type, System.Nullable 1<System.Data.DbType>, Boolean, System.Nullable1)'。

我在 GitHub 上查看了 EF Core 的源代码,但找不到与该签名匹配的方法 - 我是否遗漏了什么?

我的脚手架代码是:

dotnet ef dbcontext scaffold "Server=localhost;Database=database;Uid=myuid;" MySql.Data.EntityFrameworkCore -o Solution --project Solution.Project.Namespace

我也试过

dotnet ef dbcontext scaffold "Server=localhost;Database=database;Uid=myuid;" MySQL.Data.EntityFrameworkCore -o Solution --project Solution.Project.Namespace

我尝试通过 Developer PowerShell 和 Package Manager Console 运行这两个命令。结果一样。

我的 DbContext 是

dotnet ef dbcontext scaffold "Server=localhost;Database=database;Uid=myuid;" MySql.Data.EntityFrameworkCore -o Solution --project Solution.Project.Namespace

我的 DbContext 代码位于名为Solution .Backend的项目中,而我的模型位于名为Solution .Data的项目中

如果我注释掉所有的DbSets 并尝试在 DbContext 中除了OnConfiguringandOnModelCreating代码之外没有任何内容的情况下运行它,我会得到相同的结果。我是否遗漏了一些明显的东西,或者我遗漏了什么,或者这是一个已知的错误?我在网上的任何地方都没有找到有关此特定问题的任何信息。我很感激这里的一些帮助!提前致谢。

回答

MySql.Data.EntityFrameworkCore 8.0.22 仅与 Microsoft.EntityFrameworkCore 3.1 兼容。将所有 Microsoft.EntityFramework 包从 5.0.0 降级到 3.1.10 以修复错误。

随着 MySQL Connector/NET 8.0.23 于 2021 年 1 月 18 日的发布,Oracle 现在发布了一个与 Microsoft.EntityFramework 5.0 兼容的不同 NuGet 包:MySql.EntityFrameworkCore。

请参阅此处的版本兼容性表。

或者,您可以尝试切换到Pomelo.EntityFrameworkCore.MySql 5.0.0-alpha.2(或更高版本);请参阅其兼容包版本表。

  • I've suffered two days for this problem. You saved my life.
  • This did the trick: Install-Package Microsoft.EntityFrameworkCore.Tools -version 3.1.10

以上是使用EFCore搭建MySql数据库的问题-找不到方法:VoidMicrosoft.EntityFrameworkCore.Storage.RelationalTypeMapping的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>