Преобразование Dapper TinyInt

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

Вопрос

Я пытаюсь написать свой собственный DatabaseStorageBase для мини-профилировщика, и у меня возникают проблемы в моем

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

метод. Даппер продолжает кричать на меня

Error parsing column 5 (level=0 - SByte)

Я сохраняю уровень как tinyint(4) , поэтому я предполагаю, что dapper не может сделать преобразование из Tiny Int в то, что похоже на Enum ( ProfileLevel )? Может кто-нибудь предложить, как я должен сохранить уровень в mysql, чтобы я мог решить свои проблемы с конверсией?

Популярные ответы

Вау. что классный insident, я также реализую свой собственный mysqlstorage для miniprofiler и получаю с вами подобную ошибку.

miniprofiler использует enum в качестве байта для MiniProfiler.Level и SqlTiming.ExecuteType с использованием типа данных tinyint для этого свойства возвращает недопустимый листинг, который показывает, что он возвращает Sbyte вместо байта. это поведение по умолчанию mysql по умолчанию, поскольку оно позволяет вернуть значение знака tinyint, где as sqlserver не упоминается здесь:

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

Следовательно, разрешение просто путем изменения поля tinyint уровня и executeType в unsigned tinyint вернет правильное значение (отбрасывается в байт). теперь мой mysqlstorage работает как и ожидалось.



Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow