mysql - 在 NHibernate 中使用 Guid 作为 Id 列在使用 MySQL 时导致格式异常

标签 mysql nhibernate guid

当我定义 NHibernate 实体/映射以使用 Guid 作为标识列时,我收到一个异常。 Guid 列生成为 varchar(40),但内容似乎是二进制的。

有解决办法吗?现在我只是使用普通的 ol' int,但如果能知道 future 的项目会很高兴! :)

最佳答案

MySql 连接器文档指出,从 .NET 连接器 5.2 版开始,它们将 GUID 视为 BINARY(16) 而不是 VARCHAR(40)

Since current MySQL dialect in nhibernate doesn't updated to reflect this change (actually an issue is prepared) you need to manually convert these fields to BINARY(16) after nhibernate generate the schema.

关于mysql - 在 NHibernate 中使用 Guid 作为 Id 列在使用 MySQL 时导致格式异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1034879/

相关文章:

c# - 在 XSLT 中生成 GUID

c# - 使用 SHA256 将字符串转换为 Guid 而不截断

php - 如何使用 SQL/PHP 验证日期的日期和月份是否在范围内

php - SQL 查询 MySQL

c# - 为什么我的 ILoadEventListener 没有被调用?

database - 包含来自多个数据库的数据的域实体的推荐模式

nhibernate - 比较值对象的相等性时如何处理空值?

mysql - MySQL 中的选择案例

mysql - erreur'MySQL arépondu:文档#1066'

c# - GUID 的 COM SAFEARRAY 从 C++ 返回到 C#