Bei der Arbeit mit Oracle und EF6 bin ich auf das gleiche Problem gestoßen. Es scheint, dass der Oracle-Anbieter dies nicht unterstützt. Es gibt jedoch eine Problemumgehung, falls Sie noch keine gefunden haben.
Sie müssen zuerst die Eigenschaft QuantityChanged in Ihrem Modell (oder der Fluent-API, wo immer Sie damit umgehen) als nullable festlegen. Dann können Sie den Befehl add-migration ausführen, der eine Migrationsdatei mit der Methode „AddColumn“ in der Methode „Up“ generiert. Fügen Sie danach einen expliziten SQL-Befehl hinzu, um alle Werte auf den erforderlichen Standardwert zu aktualisieren. Wenn Sie möchten, dass die Spalte in Zukunft NOT NULL ist, benötigen Sie einen weiteren SQL-Befehl, um die Spalte zu ändern und auf NOT NULL zu setzen.
public override void Up()
{
AddColumn("MTA.PLAN_SHEETS", "QUANTITY_CHANGED", c => c.Decimal(precision: 3, scale: 0));
Sql("UPDATE MTA.PLAN_SHEETS SET QUANTITY_CHANGED = 1");
Sql("ALTER TABLE MTA.PLAN_SHEETS MODIFY QUANTITY_CHANGED NOT NULL");
}
Ich hoffe das hilft. Verweisen Sie bei Bedarf auf meine Frage:Wie lege ich einen Standardwert für eine neue Spalte mit EF6-Migrationen fest?