使用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