0

次のEntity Frameworkの移行を実行するとSqlCeException ... The column cannot contain null values. [ Column name = Subtotal と表示されます。Entity Frameworkの移行:10進数を変換しますか? NULLの既定値で10進数へ

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)); 
} 

私はRuby on Railsをためsimilar質問を見た後にこれを試してみました。

+0

私はそれが間違っていたと思います – Benjamin

答えて

1

この方法では動作しません。データベースにはデフォルト値を設定しますが、使用されません。マッピングされた列がNULL可能でない場合、クラスでnullableとしてプロパティを定義することはできません。データベースのデフォルト値は、その列に値を挿入せずにEFが常にデータベース生成されないすべての列に値を挿入する場合にのみ適用されます(この場合、データベース生成列の値はアプリケーションでは定義できません)。プロパティをnullableとして定義し、EFはnullを明示的に挿入します。

+0

私は0に任意のヌルを変換する方法を書いています - ありがとう – Benjamin

関連する問題