MySQL连接器v.6.3.6在.NET中使用GUID类型的问题

时间:2011-05-26 23:59:44

标签: c# .net mysql entity-framework guid

我在mysql中有一个标识符为 GUID 的表(二进制16 )。 要执行CRUD操作,请使用安装mysql连接器 v.6.3.6 时附带的 EF 驱动程序。 当尝试通过 EF 插入新对象时,它会失败并显示错误{“数据太长,第1行的列 MyIdentifierColumnId ”}}

MyIdentifierColumnId 二进制16 ,并在 .NET 中翻译为 GUID 。所以长度应该不是问题。

任何提示?

2 个答案:

答案 0 :(得分:4)

根据http://dev.mysql.com/doc/refman/5.1/en/connector-net-connection-options.html 定义为二进制(16)或char(36)的列被视为旧guid。在新版本中引入了UUID,如果我们想在连接字符串中使用Old Guids = true。

答案 1 :(得分:2)

你的回答非常有帮助,谢谢。但是通过添加这个“Old Guids = true”我遇到了问题我不知道如何以及在哪里添加它,我的连接失败了。因此,拥有这段代码对其他人可能会有所帮助:

 string connectionString;
 connectionString = "SERVER=" + server + ";" + "DATABASE=" +
 database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";Old Guids=true;";

 connection = new MySqlConnection(connectionString);