9

私はasp.net mvcアプリケーションで最初にEFコードを使用しています。datetime2データ型からdatetimeデータ型へのEFコードでのエラーの変換

Request.RequestDate = DateTime.Now; 

RequestDateの種類は、私のデータベースの日時は次のとおりです。 はここに私のコードです。 これは私は上記のコード!:

datetimeデータ型にDATETIME2データ型の変換を使用するときに発生したエラーでは、範囲外の値をもたらしました。

私を助けてください。ありがとう。

+0

[c#datetime2データ型からdatetimeデータ型への変換]可能な複製(http://stackoverflow.com/questions/1331779/c-sharp-conversion-of-a-datetime2-data-type-to -a-datetime-data-type) – CodeCaster

+0

SQL 2005を使用していますか? datetime2の範囲は0001/01/01から9999/12/31までです。したがって、エラーです。もしそうなら、XML edmxファイルを編集する必要があります –

+0

@json jong:私はSQL Server 2008を使用しています。私はコードを最初に使用しているので、.edmxファイルはありません。 –

答えて

11

編集:

How to fix the datetime2 out-of-range conversion error using DbContext and SetInitializer?

問題は、SQLのdatetime列に収まらない値を保存しようとしているということです。ここの答えは失敗から変換を停止します。

またはデータベースで、列をdatetime2と変更します。彼らは、コードが最初明示的にそれがためだった私の側にSQL

Using DateTime properties in Code-First Entity Framework and SQL Server

+0

私はコードファーストを使用していますが、.edmxファイルはありません。 –

+0

私はあなたが何をする必要があると思うのは、datetime型の列を指定することです。あなたのコードが最初にデータベースを生成しましたか? datetime2オブジェクトをdatetime列に格納しようとしています –

+0

はい私のデータベースはコードで最初に生成され、その列はdatetime型です。 –

5

にDATETIME2にあなたのDateTimeカラムをマップするためにここではDATETIME2

の代わりに例をdatetime型の列をされて生成された理由を私は正確に分かりませんdatetimeはnullableではなく、場合によってはフィールドがコンストラクタで初期化されていませんでした。 私はNULL可能

public DateTime? MyDate { get; set; } 

別の解決策がどんなコンストラクタ内でフィールドを初期化しないことであろうと、私のフィールドを設定することによって、これを解決しました。

+0

これは私にとってそれを解決しました。反射については、エラーメッセージはあまり良くありません。私はDateTime列を作成しました。なぜそれを別のものに変換しようとしていますか?なぜ制約が違反されたのかを教えてください... – sarin

関連する問題