无法在 .net core 3.1 中为 MySQL 中的“datetime”类型列提供支架

Dan*_*iel 6 mysql datetime entity-framework-core .net-core-3.1

过去曾发布过一个关于.net core 2 中脚手架的类似问题,但那是在一个date专栏上,迄今为止还没有发布任何解决方案。

没有特定的表,因为任何包含datetime列类型的表都会从控制台抛出以下错误:

Could not find type mapping for column 'database.table.columnname' with data type 'datetime'. Skipping column.
Run Code Online (Sandbox Code Playgroud)

这个关于读取datetime值的问题的答案和带有0000-00-00 00:00:00值的 MySQL 怪癖让我想知道更改连接字符串格式是否会有所帮助。所以我ConvertZeroDateTime=true在 scaffold 命令的连接字符串中添加了:

Scaffold-DbContext "server=localhost;port=3306;user=root;password=notherealpassword;database=sodb;ConvertZeroDateTime=true;" MySql.Data.EntityFrameworkCore -OutputDir Model -f
Run Code Online (Sandbox Code Playgroud)

我仍然有同样的错误,有人有任何建议吗?我在这个数据库中有 380 多个表,因此自动化解决方案将是最有帮助的。

jjw*_*jjw 2

我有同样的问题,现在我解决了。

\n

我无法保证我的解决方案是否适合您的情况,但我认为该解决方案适合您的情况。

\n
    \n
  1. 删除与实体框架相关的所有包。
  2. \n
  3. 安装以下软件包版本为5.0.4
  4. \n
\n

在此输入图像描述

\n
    \n
  1. 打开包管理器控制台窗口。现在我们将安装 Pomelo 包,它依赖于 .Net 标准。
  2. \n
  3. 输入命令 \xe2\x80\x9cInstall-Package Pomelo.EntityFrameworkCore.MySql -Version 5.0.0-alpha.2\xe2\x80\x9d
  4. \n
  5. 输入命令“Install-Package Pomelo.EntityFrameworkCore.MySql.NetTopologySuite -Version 5.0.0-alpha.2”
  6. \n
\n

这些命令尝试安装以下软件包。

\n

在此输入图像描述

\n
    \n
  1. 现在,在程序包管理器控制台窗口中输入以下命令。\nScaffold-DbContext "server=localhost;port=3306;uid=root;pwd=notherealpassword;database=sodb; "Pomelo.EntityFrameworkCore.MySql" -OutputDir Models -f

    \n
  2. \n
  3. 命令结果如下。\n在此输入图像描述

    \n
  4. \n
\n

我希望这篇文章对您有所帮助。

\n