2 Stimmen

MySQL-Konnektor v.6.3.6 Problem mit GUID-Typ in .NET

Ich habe eine Tabelle mit Bezeichner GUID in mysql ( binär 16 ). Zur Ausführung von CRUD-Vorgängen verwende ich EF Treiber, der mit der Installation von mysql connector mitgeliefert wird v.6.3.6 . Wenn Sie versuchen, ein neues Objekt über EF schlägt mit der Fehlermeldung {"Daten zu lang für Spalte ' MyIdentifierColumnId ' in Zeile 1"}

MyIdentifierColumnId es binär 16 und übersetzt als GUID en .NET . Die Länge sollte also kein Problem darstellen.

Irgendwelche Tipps?

4voto

Marjan Nikolovski Punkte 846

Nach Angaben der http://dev.mysql.com/doc/refman/5.1/en/connector-net-connection-options.html Spalten, die als binary(16) oder char(36) definiert sind, werden als alte Guids behandelt. In der neuen Version wurden UUID eingeführt, und wenn wir Old Guids=true in der Verbindungszeichenfolge verwenden wollen.

3voto

Andrius V. Punkte 124

Ihre Antwort war sehr hilfreich, danke. Aber ich hatte Probleme mit dem Hinzufügen von "Old Guids=true", ich wusste nicht, wie und wo ich es hinzufügen sollte, meine Verbindung brach ab. Es könnte also für andere hilfreich sein, dieses Codestück zu haben:

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

 connection = new MySqlConnection(connectionString);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X