sql >> Database teknologi >  >> RDS >> Oracle

EF6 Oracle standardværdi for en kolonne i kode første migrering

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?




  1. Mysql:FEJL 1005 (HY000):Kan ikke oprette tabellen 'receitascakephp.recipes' (fejlnr:150)

  2. Hvordan bruger jeg id'er i anførselstegn til kombination af bruger + tabelnavn i Oracle?

  3. Oracle-søgeliste over ord i streng og genindlæse eksisterende

  4. Forespørgsel med flere likes