首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用MySQL时,将Guid用作NHibernate中的Id列会导致格式异常

使用MySQL时,将Guid用作NHibernate中的Id列会导致格式异常
EN

Stack Overflow用户
提问于 2009-06-23 20:10:19
回答 2查看 3.2K关注 0票数 5

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

对此有解决方案吗?现在我只使用简单的ol‘int,但如果能在以后的项目中知道就更好了!:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-06-30 12:31:59

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

由于nhibernate中的当前MySQL方言没有更新以反映此更改(实际上已准备好),因此在nhibernate生成模式后,您需要手动将这些字段转换为二进制(16)。

票数 7
EN

Stack Overflow用户

发布于 2010-01-26 19:19:55

另一个更新是最新的连接器使用Char(36)

此选项在Connector/NET 6.1.1中引入。GUID类型的后端表示已从BINARY(16)更改为CHAR(36)。这样做是为了允许开发人员使用服务器函数UUID()来填充GUID表- UUID()生成一个36个字符的字符串。旧应用程序的开发人员可以将“旧Guids=true”添加到连接字符串,以便使用数据类型为BINARY(16)的GUID。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1034879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档