首页 > 解决方案 > 将 Razor Pages 项目更新到 ASP.Net Core 5.0:为什么要依赖 MySQL 服务器版本?

问题描述

我的 Razor Pages 项目是实验性的。它的目标是使用 Visual Studio 的 MySQL 数据库。最初,我在 ASP .NET Core 2.2 上构建项目并成功升级到 ASP.Net Core 3.1。现在我正在尝试将项目迁移到 ASP .NET Core 5.0。按照Migrate from ASP.NET Core 3.1 to 5.0
中的建议更新项目后,我在“Startup.cs”文件中遇到以下错误:图 1 下图描述了错误代码:图 2 已安装的包列表:图 3 我试图做一些事情来修复错误:图 4



在图 4 中,您可以看到我要添加一个参数。我添加了一个,我将其设置为“null”。错误消除了,但问题仍然存在。项目编译成功后,我启动了项目,但是收到如下错误:图5
在图5中可以看到错误的来源是“Pamelo.EntityFrameworkCore.MySql”,消息是“The Server Version has未设置”。但是,为什么它没有被自动检测到?那么,如果第二个参数不设置为“null”,那么这个参数怎么设置呢?回答这个问题真的帮助了我以下文章:Pomelo.EntityFrameworkCore.MySql 现在“错误”行运行良好,如下所示

services.AddDbContext<ApplicationContext>(options => options.UseMySql(
            connection,
            new MySqlServerVersion(new Version(5, 7, 17))
          ));

该项目运作良好,但问题仍然存在。找不到服务器版本怎么办?为什么自动检测不像 ASP .NET Core 3.1 的早期包版本那样工作?为什么要依赖服务器版本?
回到图 1 - 3,我有一个问题:
我是否应该期望原始代码(自动检测)在 Pamelo.EntityFrameworkCore.MySql (v 5.0.0) 包发布版本发布后可以工作?
任何帮助,将不胜感激。

标签: c#mysqlasp.net-mvcasp.net-coremigrate

解决方案


推荐阅读