16

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

Request.RequestDate = DateTime.Now;

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

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

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

4

2 に答える 2

13

編集:

DbContextとSetInitializerを使用してdatetime2の範囲外の変換エラーを修正するにはどうすればよいですか?

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

または、データベースで列をdatetime2タイプに変更します。彼らが最初にコーディングする理由がdatetime2ではなくdatetime列を生成している理由が正確にはわかりません

これは、SQLでDatetime列をdatetime2に明示的にマップする例です。

Code-FirstEntityFrameworkおよびSQLServerでのDateTimeプロパティの使用

于 2012-05-14T14:24:37.870 に答える
9

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

public DateTime? MyDate { get; set; }

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

于 2014-04-01T08:51:32.160 に答える