Я использую 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)