ピースペース

トンネルを抜けると、期待しない結果が待っていた

leave a comment »

SilverlightのDatePickerを使って入力した日付がStorageTableには前日日付で保存されてしまう
カレンダーから10/13を選んで保存すると、StorageTableには2009/10/12 15:00:00のように保存される
このEntityをLoadして表示すると、入力した日が10/12と表示されてしまう

クライアント上のEntityでDateTime型項目は、Kind=Unspecified、TimeOfDay=00:00:00 として格納されている
それがRIA Serviceを経由してサーバー側Entityでは、同じ項目が、Kind=Utcとなる
そして、なぜか悲しいことに -9hour されてしまう
なんでこ~~なるのっ(T.T)

どうやら、不具合らしいので、当面の対策がとれれば良い
自分の要件としては、クライアント側Entityに入力した日付がKind=Utcで格納されればそれで良い
RIA Servicesが生成するクライアント用クラスを補足するコードファイルを追加する

public partial class Schedule : Entity
    {
        partial void OnWishedDateF1Changed()
        {
            if (this._wishedDateF1.Kind == DateTimeKind.Unspecified)
                this._wishedDateF1 = DateTime.SpecifyKind(this._wishedDateF1, DateTimeKind.Utc);
        }

今回は、なんとかこれで対処できそう

Written by nasu38yen

2009年10月13日 @ 9:53 AM

カテゴリー: 未分類

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。