我在mysql中有一个标识符为 GUID 的表(二进制16 )。 要执行CRUD操作,请使用安装mysql连接器 v.6.3.6 时附带的 EF 驱动程序。 当尝试通过 EF 插入新对象时,它会失败并显示错误{“数据太长,第1行的列 MyIdentifierColumnId ”}}
MyIdentifierColumnId 二进制16 ,并在 .NET 中翻译为 GUID 。所以长度应该不是问题。
任何提示?
答案 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);