EF Core 8:无法创建类型为“”的“DbContext”

EF Core 8 Unable to create a 'DbContext' of type ''

提问人:Lee 提问时间:11/16/2023 更新时间:11/16/2023 访问量:96

问:

尝试将项目更新到 .NET 8.0。我更新了所有相关软件包以匹配 8.0 版本。

但它在运行时抛出。System.MissingMethodException: Method not found: 'Void CoreTypeMappingParameters..ctor

我试图在cli中检查迁移,但大多数命令都给了我这个:

Unable to create a 'DbContext' of type ''. The exception 'Method not found: ...

dotnet ef dbcontext list确实可以识别我的上下文,但它总是抛出错误。

我正在使用mysql。相关的软件包及其版本是:

  • MySql.EntityFrameworkCore 8.0.0-preview
  • MySql.Data 8.2.0
  • Microsoft.EntityFrameworkCore 8.0.0
  • Microsoft.EntityFrameworkCore.Relational 8.0.0
  • Microsoft.EntityFrameworkCore.Design 8.0.0
  • Microsoft.EntityFrameworkCore.Analyzers 8.0.0

我的项目在 7.0 版本上运行良好。除了更新这个新的 8.0 分支中的软件包外,我没有修改任何内容。

c# mysql asp.net-core 实体框架核心

评论

0赞 Charlieface 11/16/2023
这回答了你的问题吗?找不到方法:'Void CoreTypeMappingParameters..ctor(System.Type, Microsoft.EntityFrameworkCore.Storage.ValueConversion 错误
0赞 Charlieface 11/16/2023
你可能有另一个版本错误的 EF Core 库。如果没有,请卸载所有内容并重新安装。他们都需要是 8+。到目前为止,您将成为下载MySql.EntityFrameworkCore 8.0.0-preview的392名幸运者之一。
0赞 Lee 11/16/2023
@Charlieface我仔细检查了包裹。ef 包应该很好。也许mysql efcore预览版有问题......
0赞 jdweng 11/16/2023
我不会使用预览包。很多时候我发现预览版中存在错误。
0赞 Lee 11/16/2023
@jdweng 预览版似乎是目前唯一与 .NET 8 和 EF Core 8 兼容的版本。这是我使用它的唯一原因。这比错误更糟糕。我几乎无法启动和运行任何东西。

答:

0赞 Lee 11/21/2023 #1

MySql.EntityFrameworkCore 8.0.0-preview 可能有问题

目前,解决这个问题的唯一方法应该是切换到 Pomelo.EntityFrameworkCore.MySql

如果代码在旧版本的 .NET 上工作正常,则唯一需要更改的行是调用 .UseMySql

0赞 Che Onn Ismail 12/6/2023 #2

对于 .Net 8,请使用 Pomelo.EntityFrameworkCore.Mysql 版本 8 及更高版本。