지금까지는 Microsoft의 사용되지 않는 System.Data.OracleClient 드라이버와 함께 꽤 잘 작동하는 레거시 애플리케이션이 있습니다. C# 부울 값은 일반적으로 Oracle 데이터베이스에서 Number (5,0)로 표시됩니다. 수년 동안 이것은 아주 평온하게 일했습니다.오라클의 Managed ODP.Net을 사용하여 부울을 처리하는 방법
이제 Oracle의 Managed ODP.Net 교체로 마이그레이션하려고 시도하고 있으며, 부울은 특히 까다로운 것으로 입증되었습니다. Microsoft 드라이버를 Oracle ODP.Net nuget 패키지로 대체 한 결과, "insert .. where mybooleancolumn = true"(또는 매개 변수가있는 equivalents)와 같은 'sql'과 같은 쓰기 작업은 '정의되지 않은 데이터 유형'예외를 throw하고 부울 값을 읽는 것으로 나타났습니다. 데이터베이스 ("Select mybooleancolumn from ....")는 값이 C# 부울에 할당 될 때 모든 종류의 오류를 제공합니다.
다른 사람들이 어떻게이 문제를 극복합니까? 할 필요가있는 추가 매핑이 있습니까?
불행히도 그 차이는 없습니다. Managed ODP.Net을 사용하고 있습니다. 12.2.1100 –
@NeilHaughton은 내 값이 아닌 데이터베이스에 사용 된 것과 동일한 값 (5, 0)으로 매핑을 지정 했습니까? – Gilles
@NeilHaughton EDMX 파일을 재생성 해 보셨습니까? 그렇지 않은 경우 처음으로 생성 한 이전 값을 여전히 사용하고있을 것입니다. – Gilles