sql >> Databasteknik >  >> RDS >> Oracle

EF6 Oracles standardvärde för en kolumn i kodförsta migreringen

Jag stötte på samma problem när jag arbetade med Oracle och EF6. Det verkar som om Oracle-leverantören inte stöder det. Det finns dock en lösning, om du inte redan har hittat en.

Du måste först ställa in QuantityChanged-egenskapen som nullbar i din modell (eller Fluent API, var du än hanterar detta). Sedan kan du köra kommandot add-migration som genererar en migreringsfil med metoden 'AddColumn' i metoden 'Up'. Lägg sedan till ett explicit SQL-kommando för att uppdatera alla värden till standardvärdet som behövs. Om du vill att kolumnen ska vara NOT NULL framåt, behöver du ett annat SQL-kommando för att ändra kolumnen och ställa in den på 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");
    }

Jag hoppas det här hjälper. Hänvisa till min fråga om det behövs:Hur ställer jag in ett standardvärde för en ny kolumn med EF6-migreringar?




  1. Kapslad Välj med Zend Db

  2. Tre enkla SQL Server-prestandavinster

  3. Hur väljer man underkategorier från vald kategori med hjälp av en kapslad funktion i PHP?

  4. Skapa ett sammanfattande resultat med en fråga