2012-04-26 2 views
1

私はdatetime2列を最初にEF 4.3.1コードで構成しました。私は、DateTime.Nowを使用してエンティティを更新すると、SQL Server 2008に更新/挿入された値が12時間遅れていることに気付きました。EF 4.3.1を使用すると、DateTime.Nowが12時間遅れるのはなぜですか?

これはどこで、なぜこれが起こっているのですか?私のマシン上のシステム時刻は正しいですし、私が直接呼び出してGETDATE()を使用する私のストアドプロシージャはすべて期待どおりに動作します。

バッフル。

もう1つ注意してください。 context.savechangesが呼び出される前のDateTimeは正しい方法です。何かEFがやっていることや、EFがSQL Serverに渡す方法が混ざり合っている。

+0

あなたはどのタイムゾーンにいますか? DateTime.UtcNowを保存するとどうなりますか? –

+0

PST。同様の不正確な振る舞いで同様に試みられたUtcNow。 – trevorc

+0

まあ、あなたも私を困惑させてしまいました... –

答えて

1

からMSDN:GETDATE()現在のデータベースシステムのタイムスタンプを、データベースのタイムゾーンオフセットなしでdatetime値として返します。

ほとんどの場合、問題の原因はそれに関連しています。

関連する問題