Oracle
 sql >> база данни >  >> RDS >> Oracle

EF6 Стойност по подразбиране на Oracle за колона в първата миграция на код

Срещнах същия проблем при работа с Oracle и EF6. Изглежда, че доставчикът на Oracle не го поддържа. Все пак има решение, в случай че все още не сте намерили такова.

Първо трябва да зададете свойството QuantityChanged като nullable във вашия модел (или Fluent API, където и да работите с това). След това можете да изпълните командата add-migration, която ще генерира файл за миграция с метода „AddColumn“ в метода „Up“. След това добавете изрична SQL команда, за да актуализирате всички стойности до необходимата стойност по подразбиране. Ако искате колоната да бъде NOT NULL, за да продължите напред, ще ви трябва друга SQL команда, за да промените колоната и да я зададете на 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");
    }

Надявам се това да помогне. Препратка към моя въпрос, ако е необходимо:Как да задам стойност по подразбиране за нова колона с помощта на 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. Процедурата в Oracle не се изпълнява

  2. SQL - Как да изберете ред с колона с максимална стойност (+ групиране по)

  3. Двойни кавички в псевдоними на колони на Oracle

  4. Защо операторът While (rs.next()) завършва след 1-ва итерация?

  5. Изпълнение на Oracle SQL скриптове с Ansible playbook