MVC4 응용 프로그램에서 EF와 함께 ODP.NET을 사용하고 있습니다. 아래의 동작을 수행 할 때,Int32에서 Decimal 로의 유효하지 않은 캐스트
_db.Set<User>().FirstOrDefault(x => x.Email == Email || x.DisplayName == DisplayName)
는 예외
[지정한 캐스트가 유효하지 않다.] 슬로우 Oracle.DataAccess.Client.OracleDataReader.GetDecimal (INT32 I)
무엇 내 사용자 객체에 Int 필드가 없다는 것을 이해하지 못합니다. Oracle DB를 사용하여 모든 항목을 10 진수로 부드럽게 처리했습니다. 내 사용자 테이블 :
CREATE TABLE USERS (
USER_ID NUMBER(38) NOT NULL,
DISPLAY_NAME VARCHAR2(50 CHAR),
IS_LOCKED_OUT_FL VARCHAR2(1 CHAR),
IS_LOCKED_REASON VARCHAR2(256 CHAR),
IS_DELETED_FL VARCHAR2(1 CHAR),
EMAIL VARCHAR2(254 CHAR),
TITLE VARCHAR2(20 CHAR),
FIRSTNAME VARCHAR2(150 CHAR),
SURNAME VARCHAR2(150 CHAR),
DATECREATED DATE DEFAULT SYSDATE,
SCHEME_ID NUMBER(38),
STATUS VARCHAR2(20 CHAR) DEFAULT 'New',
PHONE VARCHAR2(20 CHAR) DEFAULT '',
PRODUCT_ID NUMBER(38) DEFAULT 0,
CONSTRAINT BCARD_USERS_PK PRIMARY KEY (USER_ID),
CONSTRAINT UK_BCARD_USERS UNIQUE (SCHEME_ID))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
NEXT 1M
MAXEXTENTS UNLIMITED
)
나는 심지어 오류가 ODP.NET에 의해 발생하기 때문에 디버깅을 시작할 위치를 모르는 나는 도서관에 들어 서면 수 없습니다. 또한이 문제는 내 32 비트 개발 컴퓨터에서 발생하지 않지만 동일한 코드는 동일한 32 비트 라이브러리를 사용하는 64 비트 생산 시스템 에서 예외를 발생시킵니다. 내 프로젝트는 대상 AnyCPU를 만들었습니다.
GetDecimal 메서드의 Int32 매개 변수는 열의 인덱스입니다. 인덱스 'i'가있는 열을 변환하려고하면 오류가 발생합니다. 무엇이든 int로 변환하려고하지 않습니다. –