EntityFrameworkコアを使用して挿入にデフォルト値を強制する方法は?

.net-core c# entity-framework-core sql sql-server

質問

EntityFramework Coreでレコードを追加するときに、既定値がannother値になるように強制する場合は、既定値が使用されます。

SQL

CREATE TABLE MyEntity(
    Id INT IDENTITY(1,1) NOT NULL, 
    MyProperty1 VARCHAR(50),
    MyBool BIT NOT NULL DEFAULT 1
);

。ネット

public void insertNewMyEntity()
{
    MyEntity me = New MyEntity();
    me.MyProperty1 = "Testing insert and default values with EF Core";
    me.MyBool = 0;
    dbContext.MyEntity.Add(me);
    dbContext.SaveChanges();
}

EntityFrameworkが次のコマンドを送信するため、データベースにMyBool = 1があります。

INSERT INTO MyEntity(MyProperty1) VALUES ("Testing insert and default values with EF Core");

の代わりに :

INSERT INTO MyEntity(MyProperty1, MyBool) VALUES ("Testing insert and default values with EF Core", 0);

[DataGenerated(DataGeneratedOption.None)]データアノテーション[DataGenerated(DataGeneratedOption.None)]を追加できMyBoolが、EFを使用して各クラスを生成した後、すべてのエンティティのすべてのデータアノテーションをやり直したくありません。

受け入れられた回答

私は、データアノテーション[DataGenerated(DataGeneratedOption.None)]をconfigBuilderオブジェクトのプロパティに追加します。

modelBuilder.Entity<MyEntity>().Property(a => a.MyBool).ValueGeneratedNever();


Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ