Dapper Umwandlung von TinyInt

asp.net-mvc-3 c# dapper mvc-mini-profiler mysql

Frage

Ich versuche, meine eigene DatabaseStorageBase für Mini-Profiler zu schreiben, und ich stoße auf Probleme in meinem

private List<T> LoadFor<T>(DbConnection conn, object idParameter)

Methode. Dapper heult mich immer wieder an

Error parsing column 5 (level=0 - SByte)

Ich speichere Level als tinyint(4) , also gehe ich davon aus, dass tinyint(4) die Konvertierung von Tiny Int nicht zu einem Enum ( ProfileLevel ) machen kann? Könnte jemand vorschlagen, wie ich das Niveau in mysql speichern sollte, damit ich meine Umwandlungsprobleme lösen kann?

Beliebte Antwort

Beeindruckend. Was für ein cooler Insident, ich implementiere auch meinen eigenen mysqlstorage für Miniprofiler und bekomme ähnliche Fehler bei dir.

Miniprofiler verwendet Enum als Byte für MiniProfiler.Level und SqlTiming.ExecuteType mit dem Tinyint-Datentyp für diese Eigenschaft, der eine ungültige Umwandlung zurückgibt, die anzeigt, dass Sbyte anstelle von Byte zurückgegeben wird. Dieses Verhalten Standardverhalten von MySQL, da es die Rückgabe von signierten Wert von Tinyint, wo als SQL-Server nicht wie hier erwähnt:

http://forums.mysql.com/read.php?38,5524,5581#msg-5581

http://social.msdn.microsoft.com/Forums/br/adonetefx/thread/8b0949ba-03e8-4637-baa1-d2b4ff0771f0

Daher wird die Auflösung einfach durch Ändern des tinyint-Felds von level und executeType in unsigned tinyint wird den korrekten Wert zurückgeben (cast to byte). jetzt funktioniert mein mysqlstorage wie erwartet .. hoffnung kann pull an sam anfordern :)



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow