2012-01-12 4 views
5

Je tente d'écrire mon propre DatabaseStorageBase pour mini-profileur, et je suis en cours d'exécution sur les questions dans ma méthodeconversion Dapper de TinyInt

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

. Dapper continue à me crier dessus avec

Error parsing column 5 (level=0 - SByte) 

Je stocker niveau tinyint(4), donc je suppose pimpant ne peut pas faire la conversion de Int minuscule à ce qui ressemble à un Enum (ProfileLevel)? Est-ce que quelqu'un pourrait suggérer comment je devrais stocker le niveau dans mysql afin que je puisse résoudre mes malheurs de conversion?

+0

vous n'avez pas besoin d'hériter de la base, vous pouvez simplement implémenter l'interface de stockage –

+0

J'ai essayé d'implémenter l'interface de stockage, mais la méthode Save veut toujours que je sauvegarde le niveau. Y at-il un moyen d'obtenir dapper pour produire l'enum à partir d'une valeur entière? Si ce n'est pas le cas, il me semble que je vais devoir le faire à la main. – JesseBuesking

+0

@SamSaffron J'ai oublié de vous taguer dans mon commentaire ... mon mauvais. – JesseBuesking

Répondre

2

Wow. Quel insident cool, je suis également mettre en œuvre mon propre mysqlstorage pour miniprofiler et obtenir une erreur similaire avec vous. Miniprofiler utilise enum comme octet pour MiniProfiler.Level et SqlTiming.ExecuteType en utilisant tinyint datatype pour cette propriété retourner la distribution invalide qui a montré qu'elle retourne Sbyte au lieu de byte. ce comportement par défaut de comportement de MySQL comme il permet le retour de la valeur signée de tinyint où que SQLServer pas mentionner 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 modifier le champ tinyint de niveau et executeType en tinyint non signé retournera la valeur correcte (cast to byte). maintenant mon travail de mysqlstorage comme prévu .. l'espoir peut demander la demande de pull à sam :)

+0

Je vais essayer ça sur le week-end et retour avec ce qui se passe, mais il semble que ce pourrait être la solution à mon problème: D – JesseBuesking