Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Valor padrão do EF6 Oracle para uma coluna na primeira migração de código


Me deparei com o mesmo problema trabalhando com Oracle e EF6. Parece que o provedor Oracle não oferece suporte a isso. Há um trabalho em torno embora, caso você ainda não tenha encontrado um.

Primeiro, você precisa definir a propriedade QuantityChanged como anulável em seu modelo (ou API Fluent, onde quer que esteja lidando com isso). Então você pode executar o comando add-migration que irá gerar um arquivo de migração com o método 'AddColumn' no método 'Up'. Depois disso, adicione um comando SQL explícito para atualizar todos os valores para o valor padrão necessário. Se você precisar que a coluna seja NOT NULL no futuro, precisará de outro comando SQL para modificar a coluna e defini-la como 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");
    }

Eu espero que isso ajude. Consulte minha pergunta, se necessário:Como defino um valor padrão para uma nova coluna usando migrações do EF6?