sql >> Base de Datos >  >> RDS >> Oracle

EF6 Valor predeterminado de Oracle para una columna en la primera migración del código

Encontré el mismo problema al trabajar con Oracle y EF6. Parecería que el proveedor de Oracle no lo admite. Sin embargo, hay una solución alternativa, en caso de que aún no haya encontrado una.

Primero debe establecer la propiedad Cantidad cambiada como anulable en su modelo (o API fluida, donde sea que esté manejando esto). Luego puede ejecutar el comando add-migration que generará un archivo de migración con el método 'AddColumn' en el método 'Up'. Después de eso, agregue un comando SQL explícito para actualizar todos los valores al valor predeterminado necesario. Si necesita que la columna sea NOT NULL en el futuro, necesitará otro comando SQL para modificar la columna y establecerla en 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");
    }

Espero que esto ayude. Haga referencia a mi pregunta si es necesario:¿Cómo configuro un valor predeterminado para una nueva columna usando migraciones de EF6?