Jeg stødte på det samme problem, når jeg arbejdede med Oracle og EF6. Det ser ud til, at Oracle-udbyderen ikke understøtter det. Der er dog en løsning, hvis du ikke allerede har fundet en.
Du skal først indstille QuantityChanged-egenskaben som nullbar i din model (eller Fluent API, uanset hvor du håndterer dette). Derefter kan du køre kommandoen tilføj-migrering, som genererer en migreringsfil med metoden 'Tilføj kolonne' i metoden 'Op'. Tilføj derefter en eksplicit SQL-kommando for at opdatere alle værdier til den nødvendige standardværdi. Hvis du har brug for, at kolonnen skal være NOT NULL fremover, skal du bruge en anden SQL-kommando for at ændre kolonnen og indstille den til NOT NULL.
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");
}
Jeg håber det hjælper. Henvis til mit spørgsmål, hvis det er nødvendigt:Hvordan indstiller jeg en standardværdi for en ny kolonne ved hjælp af EF6-migreringer?