«TIMESTAMP WITH TIME ZONE» <--> Сопоставление DateTImeOffset не доставляет часть зоны в командах INSERT (Entity Framework + Oracle)

Я использую EF (модель EDMX - сначала БД), чтобы сопоставить «TIMESTAMP WITH TIME ZONE» с DateTimeOffset. когда я передаю DateTimeOffset в Oracle, часть зоны сохраняется неправильно.

Таким образом, если вы используете модель, например, для вставки значения 29/02/2012 10:10:10 +04: 00 , значение, которое фактически хранится в Oracle, будет 29 / 02/2012 10:10:10 +02: 00 (при условии, что +02: 00 - это локальная зона) Обратите внимание, что сопоставления отлично работают при запросе данных. Только INSERT (через ObjectContext.SaveChanges ()) не работает ...

Я провел отладку в "Oracle.DataAccess.dll" (используя ILSpy :)) и обнаружил, что код сопоставления для EF пропускает зону ( «Поставщик данных Oracle» передает только DateTimeOffset.DateTime).

Кто-нибудь знает обходной путь?

Заранее спасибо Эли

Кстати: я использую .net4, EF4, Oracle 11g, ODAC 11.2 Release 4 (11.2.0.3.0)

7
задан EliH 5 March 2012 в 16:35
поделиться