2012-01-12 29 views
5

estoy tratando de escribir mi propia DatabaseStorageBase para el mini-generador de perfiles, y estoy corriendo en problemas en mi métodoconversión de Dapper TinyInt

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

. Dapper sigue gritando a mí con

Error parsing column 5 (level=0 - SByte) 

Estoy almacenando nivel que tinyint(4), así que estoy asumiendo pulcro no puede hacer la conversión de Tiny Int a lo que parece ser una enumeración (ProfileLevel)? ¿Podría alguien sugerir cómo debo almacenar el nivel en mysql para poder resolver mis problemas de conversión?

+0

no es necesario heredar de la base, simplemente puede implementar la interfaz de almacenamiento –

+0

He intentado implementar la interfaz de almacenamiento, pero el método Save aún quiere que guarde el nivel. ¿Hay alguna manera de obtener Dapper para producir la enumeración a partir de un valor entero? Si no, parece que tendré que mapearlo a mano. – JesseBuesking

+0

@SamSaffron Olvidé etiquetarte en mi comentario ... mi mal. – JesseBuesking

Respuesta

2

Wow. Que genial insidente, también estoy implementando mi propio mysqlstorage para miniprofiler y obtengo un error similar contigo.

miniprofiler utiliza enumeración como byte para MiniProfiler.Level y SqlTiming.ExecuteType usando tipo de datos tinyint para esta propiedad retorno reparto no válido, que muestra que devuelva SByte en lugar de bytes. este comportamiento predeterminado comportamiento de MySQL, ya que permite el retorno de valor con signo de tinyint donde como sqlserver no como mencionar aquí:

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

Por lo tanto, la resolución está simplemente altera el campo tinyint de nivel y executeType en tinyint sin firmar devolverá el valor correcto (conversión a byte). ahora mi mysqlstorage funciona como esperaba ... espero que pueda pedir una solicitud de extracción a sam :)

+0

Voy a probar esto en el futuro. fin de semana y publique de vuelta con lo que sucede, pero parece que podría ser la solución a mi problema: D – JesseBuesking