2011-07-21 14 views
11

Entity SQLを使用してEDMにクエリを実行していて、DateTime値のミリ秒の精度が失われています。たとえば2011/7/20 12:55:15.333 PMが2011/7/20 12:55:15.000 PMに変更されました。Entity FrameworkのSQL DateTime精度が失われる

SQLでは、ミリ秒が正確に記録されていることを確認しました。

、精密私は.edmx XMLファイルに適用することができます属性が、私はそれが取る値の種類を知りませんがあり

 <Property Name="Timestamp" 
       Type="DateTime" 
       Nullable="false" 
       Precision="???" /> 

誰もが、この精度の属性を使用する方法を知っていますか?

ありがとうございました。

答えて

8

DATETIME2、その後、DBからモデルを更新するためのDBでSQL Server 2008の変更データ型である場合http://seesharper.wordpress.com/2008/07/08/sql-server-datetime-vs-net-datetime-battle-of-accuracy/

を参照してください... SQL Serverのバージョンによって異なります。

それ以外の場合は、精度を3に設定できます(小数部の場合は3桁、http://msdn.microsoft.com/en-us/library/cc716737.aspxを参照)。

+0

SQL Server 2008 Express(R2)です。しかし、私のプロジェクトに属していないのでデータベースを変更することはできません。それが唯一の解決策ですか? –

+0

"Precision"に3を入れることはできますが、.edmxを編集するのは悪い習慣です! – Yahia

+0

Ok - ありがとう。 Precision "3"は動作しますが、EntityDataReaderから.GetDateTime(int ordinal)関数を使用するように切り替える必要がありました。 –

関連する問題