После прочтения заголовка это может показаться странным запросом, поэтому позвольте мне уточнить.
Я храню даты и время на сервере вместе с информацией о часовом поясе.Я хочу, чтобы клиенты могли запрашивать эти объекты с параметром, совпадающим с требуемым часовым поясом, и получать объекты с соответствующими данными.
Итак, скажем, у меня есть таблица заказов на определенное время.Пара строк может выглядеть как
BookingId | When | TimeZone | Notes
1 | 2011-05-06 12:00:00.000 | GMT +12 | null
2 | 2011-05-06 08:00:00.000 | GMT +2 | null
Клиент будет вызывать что-то вроде GetBookings("Pacific Standard Time")
, и получающийся в результате объект будет представлять собой 2 вышеупомянутых кортежа (вероятно, без поля часового пояса) с их настройками DateTimes, таквремя указывается в часовом поясе клиента, без дополнительной информации о часовом поясе / смещении.
Я знаю, что могу просто преобразовать часовой пояс на клиенте, но если у меня несколько разных клиентов, я просматриваюдублирование этого (несколько хитрого) кода на нескольких платформах, что я не хочу делать.
Проблема здесь в том, что если сервер вносит изменения в эти объекты (которые поддерживаются EF), то эти изменения отслеживаются ObjectContext.Я уверен, что есть простой способ обойти это?
Лучшее решение, о котором я до сих пор думал, - это DTO для моего объекта Booking, которого я бы предпочел избежать, но в случае необходимости реализую.
Спасибо.