2012-01-12 78 views
5

的小巧玲珑的转换我试图写我自己的DatabaseStorageBase为小型探查,和我遇到的问题在我TINYINT

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

方法。小巧玲珑不断在我吼与

Error parsing column 5 (level=0 - SByte) 

我存储水平tinyint(4),所以我假设短小精悍不能进行转换,从微小的诠释是什么样子的枚举(ProfileLevel)?有人可以建议我应该如何在MySQL中存储级别,以便我可以解决我的转换困境?

+0

你不需要继承基地,你可以简单地实现存储接口 – 2012-02-10 07:39:50

+0

我试图实现存储接口,但Save方法仍然希望我保存关卡。有没有办法让整洁的产生枚举的整数值?如果不是,它看起来像我必须手动映射它。 – JesseBuesking 2012-03-02 03:44:43

+0

@SamSaffron我忘了在我的评论中标记你...我的坏。 – JesseBuesking 2012-03-02 20:25:23

回答

2

哇。什么是一个很酷的事件,我也为miniprofiler实现了我自己的mysqlstorage,并且得到了类似的错误。

miniprofiler使用枚举作为MiniProfiler.Level的字节和SqlTiming.ExecuteType 对此属性使用tinyint数据类型返回无效的转换,它表明它返回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

因此,分辨率仅仅通过改变级的TINYINT场并将executeType转换为无符号的tinyint将返回正确的值(转换为字节)。现在我的mysqlstorage按预期工作..希望可以向拉姆请求山姆:)

+0

我会试试这个周末和回来后发生的事情,但它听起来像它可能是我的问题的解决方案:D – JesseBuesking 2012-10-09 21:00:11