12
私のプロジェクトでは、まずEFコードを使用しています。私は自分のデータモデルに次のコードを持っていますEntity Framework最初に列をnullにできないようにする
[HiddenInput(DisplayValue = false)]
public DateTime? PasswordDate { get; set; }
これをnullにすることができないようにするには、「?」を削除しました。パッケージマネージャコンソールからAdd-Migrationコマンドを実行しました。次の移行ファイルが生成されました。
public partial class PasswordDate : DbMigration
{
public override void Up()
{
AlterColumn("dbo.CertificateInfoes", "PasswordDate", c => c.DateTime(nullable: false));
}
public override void Down()
{
AlterColumn("dbo.CertificateInfoes", "PasswordDate", c => c.DateTime());
}
}
しかし、私は更新-Databaseコマンドを実行すると、私はエラーを取得、次の
Update-Database -SourceMigration 201309020721215_PasswordDate
を:列 'PasswordDate'、テーブル '' にNULL値を挿入できません。列はNULLを許可しません。 UPDATEに失敗します。 ステートメントが終了しました。
解決策をお勧めします。
nullableに戻すことはできません。 2番目のオプションのために私はどのようにデフォルト値を定義できますか?私はそれをマイグレーションファイルで行う必要がありますか、それともデータモデルに追加する必要がありますか? – HBhatia
@HardikBhatia次に、あなたの列にデフォルトの日付値を与えます。そうしないと、ヌルレコードを個別に調べて更新する必要があります。 – mattytommo
私はすでにテーブルを修正して、自分のPasswordDateカラムがデータベース内でヌルでないことを確認しました。 – HBhatia