4

ASP.Net 4 EF 4.3.1 Code First Migrations を使用しています。

私は既存のモデルクラスを持っています。私はそれにプロパティを追加しました:

public DateTime LastUpdated { get; set; }

update-database -force -verbose を実行すると、次のようになります。

ALTER TABLE [MyTable] ADD [LastUpdated] [datetime] NOT NULL DEFAULT '0001-01-01T00:00:00.000'
System.Data.SqlClient.SqlException (0x80131904): varchar データ型から datetime データ型への変換の結果範囲外の値です。
ステートメントは終了されました。

これは、生成された SQL で使用されている暗黙のデフォルト値に関連していると推測します。初期化に使用された varchar がデータが失われていると不平を言っているようです。

4

1 に答える 1

7

null 以外の DateTime 列を追加できないというこの問題に対する答えは、DateTime 列に指定された 2 つの既定値を取得する問題と 同じです。テーブル

つまり、長い間壊れており、null 許容で移行することで回避できます。

public DateTime? LastUpdated { get; set; }

PM> update-database

次に、null 以外で再度移行して、意図した場所に移動します。

public DateTime LastUpdated { get; set; }

PM> update-database
于 2012-06-05T22:43:37.950 に答える