Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Domyślna wartość EF6 Oracle dla kolumny w pierwszej migracji kodu

Natknąłem się na ten sam problem podczas pracy z Oracle i EF6. Wygląda na to, że dostawca Oracle tego nie obsługuje. Istnieje jednak obejście, na wypadek gdybyś jeszcze go nie znalazł.

Najpierw musisz ustawić właściwość QuantityChanged jako dopuszczającą wartość null w modelu (lub interfejsie API Fluent, gdziekolwiek to obsługujesz). Następnie można uruchomić polecenie add-migration, które wygeneruje plik migracji metodą „AddColumn” w metodzie „Up”. Następnie dodaj jawne polecenie SQL, aby zaktualizować wszystkie wartości do wymaganej wartości domyślnej. Jeśli chcesz, aby kolumna miała wartość NOT NULL, będziesz potrzebować innego polecenia SQL, aby zmodyfikować kolumnę i ustawić ją na wartość 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");
    }

Mam nadzieję, że to pomoże. W razie potrzeby odnieś się do mojego pytania:Jak ustawić domyślną wartość dla nowej kolumny przy użyciu migracji EF6?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak policzyć wiersze zawierające wartości niezerowe w sql

  2. Dlaczego DECODE Oracle daje mi inną wartość niż NVL?

  3. Aliasowanie tabel nie działa w nieprzetworzonych zapytaniach Oracle SQL w Django

  4. Czy do nowoczesnej aplikacji powinienem używać Oracle UCP czy HikariCP?

  5. Indeks czasu stałego dla kolumny ciągu w bazie danych Oracle