SQL My SQL mit C#

roker002

Commander
Registriert
Dez. 2007
Beiträge
2.077
Hallo, ich habe da paar Frage zu MySQL.Data.

Das erste ist: Wieso kann der MySQL.Data die Parameterwerte nicht richtig umwandeln, wenn es um Nullables geht. Ich habe z.B. einen Nullable Integer aber dieser wird in Decimal konvertiert. Das lustige ist, im DbType steht sogar AnsiString und MySqlType ist Decimal. Es betrifft alle Nullables/Nullrefs. Ich habe im Netz nichts finden können, ob es sich um einen Bug oder um einen Feature handelt.

Die andere Frage ist: Eine Query liefert mir Primary Key vom Typ Integer. Dieser wird wunderbarer weise in einen short umgewandelt, über die DB Engine selbst. Lustig ist, wenn ich Procedure Analyse auf die Query setze, sehe ich, dass es wirklich SmallInt ist und nicht integer in Optimal fieldtype. Klar optimal ist optimal, aber was hat es mit dem Datentypen zutun? Irgendwann wächst die Tabelle und es wird dann als optimaler Type Integer empfohlen. Muss man die Anwendung dann hotfixen? Sicher, PHP hat keine Typenunterscheidung, da ist es egal. Aber dann kann ich von MySql programmierern nicht behaupten, das die Profis sind.

Hat noch jemand eine solche Erfahrung? Wie ging ihr damit um?
 
Ich kann deine Fragen nicht direkt beantworten, da ich nicht mit MySQL und C# arbeite. Aber vielleicht wäre LINQ to SQL eine Option, um dich nicht um all die Datentypenübersetzung kümmern zu müssen. Kommt natürlich drauf an, wie weit du mit deinem Projekt bist.

Unterstützung für MySQL gibts direkt über Nuget:
Install-Package linq2db.MySql
 
Leider wird das nicht helfen. Da der Linq einen Short als Rückgabe Datentypen erkennt und wenn es auf int geswitched wird (durch DB Engine) muss man eh die fixen.
Das mit Mysql Db Parametern ist Lib Problem. Da wird Linq wahrscheinlich auch nicht helfen, denn Linq wird sicher die selben Assemblies nutzen.
 
Zurück
Oben