TinyInt의 대 팝 변환

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

문제

나는 미니 프로파일 러를위한 내 자신의 DatabaseStorageBase를 작성하려고 시도하고 있으며,

Error parsing column 5 (level=0 - SByte)

방법. Dapper가 나에게 소리 지른다.

Error parsing column 5 (level=0 - SByte)

나는 tinyint(4) 로 레벨을 저장하고 있으므로, dapper가 Tiny Int에서 Enum ( ProfileLevel )처럼 보이는 것으로 변환 할 수 없다고 가정하고 있습니까? 누군가 내 변환 불황을 해결할 수 있도록 mysql에서 레벨을 저장하는 방법을 제안 할 수 있습니까?

인기 답변

와우. 멋진 인시던트, 나 또한 miniprofiler에 대한 내 자신의 mysqlstorage를 구현하고 당신과 비슷한 오류가 발생합니다.

miniprofiler는이 속성에 대해 tinyint 데이터 형식을 사용하는 MiniProfiler.Level 및 SqlTiming.ExecuteType의 열거 형을 enum으로 사용하여 바이트 대신 Sbyte를 반환한다는 것을 보여주는 잘못된 캐스트를 반환합니다. 이 문제는 mysql의 기본 동작으로 tinyint의 부호있는 값을 반환 할 수 있으므로 여기서는 sqlserver가 아닙니다.

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

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

따라서, 해결 방법은 단순히 level의 tinyint 필드를 변경하고 executeType을 unsigned tinyint로 변경하면 올바른 값 (바이트로 캐스트)이 반환됩니다. 지금 내 mysqlstorage 예상대로 작동 .. 희망은 샘 요청을 당길 수 있습니다 :)




아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.