2013-08-20 5 views
0

Я использую ODP.NET с EF в приложении MVC4. При выполнении операции ниже,Недопустимый листинг от Int32 до десятичного

_db.Set<User>().FirstOrDefault(x => x.Email == Email || x.DisplayName == DisplayName) 

он бросает исключение

[указано литая не действует.] Oracle.DataAccess.Client.OracleDataReader.GetDecimal (Int32 я)

Что Я не понимаю, что у моего User Object нет полей Int, я сделал их все десятичные, чтобы сгладить ситуацию с помощью Oracle DB. Моего пользователя таблица:

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-разрядной машине разработки, но тот же код генерирует исключение на 64-битной производственной машине , используя ту же 32-битную библиотеку. Мой проект был построен целевой AnyCPU.

+1

Параметр Int32 метода GetDecimal является индексом столбца - он выдает ошибку, пытающуюся преобразовать столбец с индексом «i». Он не пытается конвертировать ничего в int. –

ответ

1

Чтобы быть ясным, параметр Int32 метода GetDecimal является индексом столбца - он выдает ошибку, пытающуюся преобразовать столбец с индексом «i». Он не пытается конвертировать ничего в int.

Это, я думаю, было бы так, что ваш объект User имеет десятичное поле, которое не может быть NULL (десятичное?), Но некоторые из ваших столбцов, таких как schem_id и product_id, допускают нули в базе данных.

+0

Я посмотрю. –

+0

Не могли бы вы поместить свой комментарий в качестве обновления вашего ответа? На самом деле это была проблема. –

+0

Выполнено, но, пожалуйста, уточните, в чем проблема. –

Смежные вопросы