mysql - 无法在 .net core 3.1 中从 MySQL 中构建 “datetime” 类型的列

标签 mysql datetime entity-framework-core .net-core-3.1

过去曾发布过类似的问题,关于 scaffolding in .net core 2但那是在 date 上列,迄今为止尚未发布任何解决方案。
没有特定的表,因为任何包含 datetime 的表列类型从控制台抛出以下错误:

Could not find type mapping for column 'database.table.columnname' with data type 'datetime'. Skipping column.
This answer一个关于阅读的问题datetime值和 MySQL 的怪癖 0000-00-00 00:00:00 values 让我想知道更改连接字符串格式是否会有所帮助。所以我添加了 ConvertZeroDateTime=true到脚手架命令中的连接字符串:
Scaffold-DbContext "server=localhost;port=3306;user=root;password=notherealpassword;database=sodb;ConvertZeroDateTime=true;" MySql.Data.EntityFrameworkCore -OutputDir Model -f
我仍然有同样的错误,有人有任何建议吗?我在这个数据库中有 380 多个表,因此自动化解决方案将是最有帮助的。

最佳答案

我有同样的问题,现在我解决了。
我无法确定我的解决方案是否适用于您的情况,但我认为此解决方案适用于您的情况。

  • 删除所有与 Entity Framework 相关的包。
  • 安装以下软件包,版本为 5.0.4

  • enter image description here
  • 打开包管理器控制台窗口。现在我们将安装依赖于 .Net 标准的 Pomelo 包。
  • 输入命令“Install-Package Pomelo.EntityFrameworkCore.MySql -Version 5.0.0-alpha.2”
  • 输入命令“Install-Package Pomelo.EntityFrameworkCore.MySql.NetTopologySuite -Version 5.0.0-alpha.2”

  • 这些命令尝试安装以下软件包。
    enter image description here
  • 现在输入以下命令到包管理器控制台窗口。
    Scaffold-DbContext "server=localhost;port=3306;uid=root;pwd=notherealpassword;database=sodb;"Pomelo.EntityFrameworkCore.MySql"-OutputDir 模型 -f
  • 命令的结果如下。
    enter image description here

  • 我希望这篇文章对你有帮助。

    关于mysql - 无法在 .net core 3.1 中从 MySQL 中构建 “datetime” 类型的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64654033/

    相关文章:

    c# - EF Core 3 未加载第二层或更深层的相关数据

    PHP/MySQL Propel join with 不水化对象

    Mysql - 有效地获取给定ID的每个组的最大值

    mysql - 无法在 Visual Studio 中使用 mysql.data.entity.EF6 为 MySql 数据库创建 .edmx

    python - 如何在 matplotlib 中使用日期时间索引增加 xticks?

    sql-server - 证书链由不受信任的机构颁发

    MySQLNonTransientConnectionException/jdbc4.CommunicationsException 错误在使用 C3P0 时继续

    javascript - 如何使用 jquery/javascript 检查当前时间是否在工作日的特定范围内?

    c# - 获取重叠间隔的持续时间

    c# - 添加数据库迁移时指定应用程序设置