sql >> データベース >  >> RDS >> Oracle

EF6コードの最初の移行における列のOracleのデフォルト値

    OracleとEF6で同じ問題が発生しました。 Oracleプロバイダーはそれをサポートしていないようです。ただし、まだ見つけていない場合は、回避策があります。

    最初に、QuantityChangedプロパティをモデル(またはこれを処理している場合はFluent API)でnull許容として設定する必要があります。次に、add-migrationコマンドを実行して、「Up」メソッドの「AddColumn」メソッドを使用して移行ファイルを生成できます。その後、明示的なSQLコマンドを追加して、すべての値を必要なデフォルト値に更新します。先に進むために列をNOTNULLにする必要がある場合は、列を変更してNOTNULLに設定するための別のSQLコマンドが必要になります。

        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. MySQLから空のResultSetを検出する方法は?

    2. 直接関数を使用せずに数値を単語で表示するSQLステートメント(oracle)

    3. 内部結合のsqlLiteDatabase.query()

    4. CASEステートメントで計算された2つの列を乗算する