Ich habe eine Legacy-Anwendung, die bis jetzt mit dem veralteten System.Data.OracleClient-Treiber von Microsoft recht gut funktioniert hat. C# boolesche Werte werden im Allgemeinen in seiner Oracle-Datenbank als Zahl (5,0) dargestellt. Seit Jahren hat das ziemlich gelassen funktioniert.Umgang mit Booleans mit Oracle Managed ODP.Net
Wir versuchen nun, zu Oracle Managed ODP.Net zu wechseln, und Booleans erweisen sich als besonders problematisch. Nach dem Ersetzen des Microsoft-Treibers durch das Oracle ODP.Net-Nugget-Paket finde ich, dass Schreiboperationen mit SQL wie "insert .. where mybooleancolumn = true" (oder parametrierte Entsprechungen) eine 'undefined data- type'-Ausnahme auslösen und boolesche Werte auslesen Die Datenbank ("Select mybooleancolumn from ....") gibt alle Arten von Fehlern, wenn die Werte C# booleans zugewiesen werden.
Wie überwinden andere dieses Problem? Gibt es noch ein zusätzliches Mapping, das getan werden muss?
Leider hat das keinen Unterschied gemacht. Ich verwende Managed ODP.Net 12.2.1100 –
@NeilHaughton haben Sie die Zuordnung mit dem gleichen Wert (5, 0) wie in Ihrer Datenbank verwendet und nicht meinen Wert? – Gilles
@NeilHaughton Haben Sie versucht, die EDMX-Datei neu zu generieren? Wenn nicht, verwendet es wahrscheinlich noch die alten Werte, die es beim ersten Mal erzeugt hat. – Gilles