web-dev-qa-db-ja.com

datetime2データ型からdatetimeデータ型への変換は、EFコードが最初にあるエラーですか?

最初にasp.net mvcアプリケーションでEFコードを使用しています。これが私のコードです:

Request.RequestDate = DateTime.Now;

requestDateのタイプはデータベースの日時です。そして、これは上記のコードを使用したときに発生したエラーです!:

Datetime2データ型をdatetimeデータ型に変換すると、値が範囲外になりました。

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

15
Mohammad Zare

編集:

DbContextとSetInitializerを使用してdatetime2の範囲外変換エラーを修正する方法

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

または、データベースで列をdatetime2型に変更します。なぜ最初にコードがdatetime2ではなくdatetime列を生成するのか正確にはわかりません

以下は、SQLでDatetime列を明示的にdatetime2にマップする例です

Code-First Entity FrameworkおよびSQL ServerでのDateTimeプロパティの使用

12
Blast_dan

私の側では、日付時刻がnull可能ではなく、状況によってはフィールドがコンストラクターで初期化されなかったためです。私のフィールドをnull可能に設定することでこれを解決しました

public DateTime? MyDate { get; set; }

別の解決策は、何があってもコンストラクターでフィールドを初期化することです。

6
Daniel