Jes*_*ing 5 c# mysql asp.net-mvc-3 dapper mvc-mini-profiler
我正在尝试为mini-profiler编写自己的DatabaseStorageBase,而且我遇到了问题
private List<T> LoadFor<T>(DbConnection conn, object idParameter)
Run Code Online (Sandbox Code Playgroud)
方法.Dapper一直在跟我大喊大叫
Error parsing column 5 (level=0 - SByte)
Run Code Online (Sandbox Code Playgroud)
我存储的水平tinyint(4)
,所以我假设短小精悍不能让从微小的诠释是什么样子的枚举转换(ProfileLevel
)?有人可以建议我应该如何在mysql中存储级别,以便我可以解决我的转换问题?
哇。多么酷的内部,我还为 miniprofiler 实现了我自己的 mysqlstorage 并得到了与你类似的错误。
miniprofiler 使用枚举作为 MiniProfiler.Level 的字节,并使用tinyint 数据类型作为此属性的 SqlTiming.ExecuteType 返回无效的转换,这表明它返回 Sbyte 而不是字节。这种行为是 mysql 的默认行为,因为它允许返回有符号的 tinyint 值,而 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
因此,解决方案只需将 level 和executeType 的tinyint 字段更改为unsignedtinyint 即可返回正确的值(转换为字节)。现在我的 mysqlstorage 按预期工作..希望可以向 sam 提出拉取请求:)
归档时间: |
|
查看次数: |
1583 次 |
最近记录: |