我有一个.NET应用程序,它允许用户通过提供连接字符串和提供程序来访问各种数据库.
用户想要访问的数据库之一是MySQL数据库(不是我的,因此我无法更改),其中主键全部存储为GUID.
使用MySQL ODBC 3.51驱动程序时,我的应用程序可以访问该数据库中各种表中的记录.
但是使用完全相同的代码(考虑到ODBC需要一个?代替参数名称,而.NET连接器需要"@name"语法),并尝试在相同的表中读取相同的记录,但这次使用MySQL .NET Connector(V6.1.3以及v6.2.2),然后我收到错误"Guid应该包含带有4个破折号的32位......".
.NET Connector有什么问题,或者我需要在某处指定哪些内容才能使其正常工作?
好吧,经过一段时间的侦察,我想我会看到MySQL是否发布了.NET Connector的更高版本.我找到了https://dev.mysql.com/downloads/connector/net/.这说明了我收到的错误,并谈到连接字符串中的选项"old guids = true"(它没有说明何时以及如何使用它,但它在版本中无法正常工作6.1.3).
我尝试在我的连接字符串中放入"oldguids = true",然后我的通用应用程序工作.