sql >> Databáze >  >> RDS >> Oracle

Výchozí hodnota EF6 Oracle pro sloupec při první migraci kódu

Narazil jsem na stejný problém při práci s Oracle a EF6. Zdá se, že poskytovatel Oracle to nepodporuje. Existuje však řešení, pro případ, že jste jej ještě nenašli.

Nejprve musíte nastavit vlastnost QuantityChanged jako nullable ve vašem modelu (nebo Fluent API, kdekoli to řešíte). Poté můžete spustit příkaz add-migration, který vygeneruje migrační soubor s metodou 'AddColumn' v metodě 'Up'. Poté přidejte explicitní příkaz SQL pro aktualizaci všech hodnot na potřebnou výchozí hodnotu. Pokud potřebujete, aby byl sloupec NOT NULL, budete potřebovat další příkaz SQL k úpravě sloupce a jeho nastavení na 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");
    }

Doufám, že to pomůže. V případě potřeby se obraťte na mou otázku:Jak nastavím výchozí hodnotu pro nový sloupec pomocí migrací EF6?




  1. Jaký je přesně rozdíl mezi primárním indexem a sekundárním indexem?

  2. Jak používat FIND_IN_SET pomocí seznamu dat

  3. Jak získat vloženou hodnotu pro trigger

  4. Zajištění funkčnosti připojení MySQL ve funkci PHP