El Proc almacenado devuelve una columna con el valor 0 o 1 sin convertir a BIT. En mi POCO, si declaro el campo como¿Cuál es la forma más fácil de tratar la conversión de 0/1 a Falso/Verdadero en EF 4.x?
public bool MyColumn {get; set;}
estoy recibiendo este error:
The specified cast from a materialized 'System.Int32' type to the 'System.Boolean' type is not valid.
En realidad, esto tiene sentido ya que EF reconoce el valor devuelto como un entero.
Me pregunto si hay alguna manera fácil de (agregar anotación o usar api fluido quizás) convertir automáticamente 0/1 a Falso/Verdadero en el mapeo detrás de la escena sin tocar el Proc?
¡Gracias de antemano!
Ya lo ha tocado. Convierta el valor de retorno en un BIT. –
Boo es correcto. Si no tiene acceso al procedimiento almacenado para cambiar el tipo de devolución de la columna a bit, tendrá que cambiar el tipo de la propiedad a 'int', y luego verificar la igualdad a 0. – rossipedia
tuve un problema similar a esto: al comienzo del proceso almacenado, había definido una tabla temporal con una columna de tipo Bit. Al devolver los resultados, estaba unificando una selección de la tabla temporal, con otra consulta donde el valor de la columna de bits acababa de establecerse en "0". Estaba obteniendo el mismo error que el anterior, y terminé resolviéndolo usando cast (bitcolumn como bit) - esto luego resolvió el error, y no tuve que cambiar el código para evitar esto. – hitch