Conversion Dapper de TinyInt

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

Question

J'essaie d'écrire mon propre DatabaseStorageBase pour mini-profileur, et je rencontre des problèmes dans mon

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

méthode. Dapper continue de me crier dessus avec

Error parsing column 5 (level=0 - SByte)

Je stocke level comme tinyint(4) , donc je suppose que Dapper ne peut pas faire la conversion de Tiny Int à ce qui ressemble à un Enum ( ProfileLevel )? Quelqu'un pourrait-il suggérer comment stocker le niveau dans mysql pour que je puisse résoudre mes problèmes de conversion?

Réponse populaire

Sensationnel. quel cool insident, je suis également implémenter mon propre mysqlstorage pour miniprofiler et obtenir des erreurs similaires avec vous.

miniprofiler utilise enum comme octet pour MiniProfiler.Level et SqlTiming.ExecuteType utilisant le type de données tinyint pour cette propriété renvoie une distribution invalide qui montre qu'il renvoie Sbyte au lieu d'octet. ce comportement comportement par défaut de mysql car il permet le retour de la valeur signée de tinyint où comme sqlserver pas comme mentionné ici:

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

Par conséquent, la résolution est simplement en modifiant le champ de niveau tinyint et executeType en unsigned tinyint renverra une valeur correcte (conversion en octet). maintenant mon mysqlstorage fonctionne comme prévu .. espérons pouvoir demander la demande à sam :)




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi