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