0

SqlCeException ... The column cannot contain null values. [ Column name = Subtotal 次のEntityFrameworkの移行を実行すると取得します。

public override void Up()
{
    AlterColumn("BuildingOrders", "Subtotal",
        c => c.Decimal(nullable: false, precision: 18, scale: 2));
}

これはデフォルト値を設定する正しい方法ですか?簡単すぎるようです:)

public override void Up()
{
    AlterColumn("BuildingOrders", "Subtotal",
        c => c.Decimal(nullable: false, precision: 18, scale: 2, defaultValue: 0));
}

レール上のルビーについて同様の質問を見た後、これを試しました。

4

1 に答える 1

1

このようには機能しません。データベースにデフォルト値を設定しましたが、使用されていません。マップされた列が null 許容でない場合、クラスでプロパティを null 許容として定義することはできません。データベースのデフォルト値は、その列に値を挿入しない場合にのみ適用されますが、EF は常にデータベースで生成されていないすべての列に値を挿入します (データベースで生成された列の値はアプリケーションで定義できません)。プロパティを null 許容として定義し、EF が null を明示的に挿入する => 例外。

于 2012-02-23T20:53:10.270 に答える