Konwertuj numer Int32 na Oracle (5) za pomocą EF4

Używam EF 4 (najpierw baza danych, model w pełni wygenerowany z niego) z bazą danych Oracle 10g i mam problem z jednym polem.

Moje pole jest zdefiniowane jakoNUMBER(5) w mojej bazie danych. W moim modelu EF zdefiniował go jakoshort. Moim problemem jest to, że mam pewne wartości, które są większe niż 32 767 (maks. Krótki) Znalazłem ten post:Entity Framework generuje krótkie zamiast int. Podążam za instrukcją i działa, mój model zawiera teraz wartości Int32.

Ale mam nowy problem:

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'.

Ten błąd jest zawsze wyświetlany na karcie Lista błędów w Visual Studio. Jednak sukces w budowaniu, a to w połowie działa:

odczytać wartość w pracach bazy danychnapisz wartość nie działa: 99999 został przekształcony w -31073 (patrz edycja)

Czy istnieje rozwiązanie, aby to działało w obie strony?

BTW, czy istnieje sposób, aby powiedzieć jednostce, aby używała int32 dla pól Oracle INTEGER? Domyślnie używa dziesiętnego.

EDYTOWAĆ

Podczas debugowania krok po kroku odkryłem, dlaczego moja wartość wynosiła -31073. Zapomniałem tej linii:

dao.Value = (short)dto.Value;

Moje dwie wartości były int, ale w skrócie ukryta konwersja była początkiem.

questionAnswers(2)

yourAnswerToTheQuestion