Конвертировать Int32 в номер Oracle (5) с EF4

Я использую EF 4 (сначала база данных, полностью сгенерированная модель) с базой данных Oracle 10g, и у меня проблема с одним полем.

Мое поле определяется какNUMBER(5) в моей базе данных. В моей модели EF определил это какshort, Моя проблема в том, что у меня есть некоторые значения, которые больше, чем 32,767 (максимум короткого), я нашел этот пост:Entity Framework генерирует короткие вместо int, Я следую инструкции, и она работает, моя модель теперь содержит значения Int32.

Но у меня есть новая проблема:

Error 2019: Member Mapping specified is not valid. The type 'Edm.Int32[Nullable=True,DefaultValue=]' of member 'XX' in type 'Model.XXX' is not compatible with 'OracleEFProvider.number[Nullable=True,DefaultValue=,Precision=5,Scale=0]' of member 'XX' in type 'Model.Store.XXX'.

Эта ошибка всегда отображается на вкладке Список ошибок Visual Studio. Однако сборка удалась, и она наполовину работает:

прочитать значение в базе данных работзапись значения не работает: 99999 был преобразован в -31073 (см. редактирование)

Есть ли решение, чтобы оно работало в обоих направлениях?

Кстати, есть ли способ сказать сущности использовать int32 для оракула поля INTEGER? По умолчанию используется десятичная дробь.

РЕДАКТИРОВАТЬ

Отлаживая шаг за шагом, я обнаружил, почему мое значение было -31073. Я забыл эту строку:

dao.Value = (short)dto.Value;

Мои два значения были int, но неявное преобразование вкратце было источником.

Ответы на вопрос(2)

Ваш ответ на вопрос