最初にasp.net mvcアプリケーションでEFコードを使用しています。これが私のコードです:
Request.RequestDate = DateTime.Now;
requestDateのタイプはデータベースの日時です。そして、これは上記のコードを使用したときに発生したエラーです!:
Datetime2データ型をdatetimeデータ型に変換すると、値が範囲外になりました。
私を助けてください。ありがとう。
編集:
DbContextとSetInitializerを使用してdatetime2の範囲外変換エラーを修正する方法
問題は、SQL日時列に収まらない値を保存しようとしていることです。ここで回答すると、変換の失敗が停止します。
または、データベースで列をdatetime2型に変更します。なぜ最初にコードがdatetime2ではなくdatetime列を生成するのか正確にはわかりません
以下は、SQLでDatetime列を明示的にdatetime2にマップする例です
私の側では、日付時刻がnull可能ではなく、状況によってはフィールドがコンストラクターで初期化されなかったためです。私のフィールドをnull可能に設定することでこれを解決しました
public DateTime? MyDate { get; set; }
別の解決策は、何があってもコンストラクターでフィールドを初期化することです。