使用MySQL的Umbraco网站未将CHAR(36)解释为Guid

时间:2019-03-22 17:07:21

标签: c# mysql umbraco petapoco

我已经将Umbraco网站迁移到运行MySQL 8和MySQL ODBC Connector 8.0的新服务器上。

当尝试从Umbraco数据库检索内容时,出现错误: Invalid cast from 'System.String' to 'System.Nullable'1[[System.Guid, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]'.

经过调试后,我们发现应该将Umbraco数据库中的CHAR(36)列错误地解释为C#字符串,而应该将其解释为Guid。

因此,问题在于当应该将CHAR(36)列解释为Guid时,ORM将其错误地解释为String。我了解MySQL的预期行为是CHAR(36)被解释为Guid。

我们尝试将连接字符串中的OldGuids参数设置为true和false,但无济于事。

在代码级别修复此问题不是一种选择。

数据库是使用MySQL Workbench迁移的,迁移后我们要做的一件事是将架构的默认字符集设置为utf-8(来自utf-8mb4),以匹配迁移的架构。

0 个答案:

没有答案