Il Proc memorizzato restituisce una colonna con il valore da 0 o 1 senza conversione in BIT. Nel mio POCO, se dichiaro il campo comeQual è il modo più semplice per gestire la conversione da 0/1 a False/True in EF 4.x?
public bool MyColumn {get; set;}
sto ottenendo questo errore:
The specified cast from a materialized 'System.Int32' type to the 'System.Boolean' type is not valid.
Questo rende effettivamente senso dal momento che EF riconosce il valore restituito come un intero.
Mi chiedo se esiste un modo semplice per aggiungere annotazioni o usare fluente API, convertire automaticamente da 0/1 a False/True nella mappatura dietro la scena senza toccare Proc?
Grazie in anticipo!
L'hai già toccato. Converti il valore di ritorno in un bit. –
Boo è corretto. Se non si ha accesso alla stored procedure per modificare il tipo di ritorno della colonna in bit, sarà necessario modificare il tipo di proprietà in un 'int', quindi verificare l'uguaglianza su 0. – rossipedia
Ho avuto un problema simile a questo: all'inizio del processo memorizzato avevo definito una tabella temporanea con una colonna di tipo Bit. Quando restituivo i risultati, stavo unendo una selezione dalla tabella temporanea, con un'altra query in cui il valore per la colonna dei bit era appena impostato su "0". Stavo ottenendo lo stesso errore di cui sopra, e ho finito per risolverlo usando cast (bitcolumn as bit) - questo poi ha risolto l'errore, e non ho avuto bisogno di cambiare il codice per aggirare questo problema. – hitch