Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

EF6 Giá trị mặc định của Oracle cho một cột trong lần di chuyển đầu tiên của mã

Tôi đã gặp vấn đề tương tự khi làm việc với Oracle và EF6. Có vẻ như nhà cung cấp Oracle không hỗ trợ nó. Tuy nhiên, có một công việc xung quanh, trong trường hợp bạn chưa tìm thấy.

Trước tiên, bạn cần đặt thuộc tính QuantityChanged thành nullable trong mô hình của mình (hoặc API Fluent, cho dù bạn đang xử lý điều này ở đâu). Sau đó, bạn có thể chạy lệnh bổ sung di chuyển sẽ tạo tệp di chuyển bằng phương thức 'AddColumn' trong phương thức 'Up'. Sau đó, thêm một lệnh SQL rõ ràng để cập nhật tất cả các giá trị thành giá trị mặc định cần thiết. Nếu bạn cần cột KHÔNG ĐẦY ĐỦ trong tương lai, bạn sẽ cần một lệnh SQL khác để sửa đổi cột và đặt nó thành KHÔNG ĐẦY ĐỦ.

    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");
    }

Tôi hi vọng cái này giúp được. Tham khảo câu hỏi của tôi nếu cần: Làm cách nào để đặt giá trị mặc định cho cột mới bằng di chuyển 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. Biểu thức chính quy Oracle có dấu gạch nối không cho kết quả tương tự trên Windows như trên Unix

  2. Oracle:Đang tải một tệp xml lớn?

  3. Cú pháp Oracle - chúng ta có nên chọn giữa cái cũ và cái mới không?

  4. Kết hợp dữ liệu từ các con trỏ thành một

  5. Không thể chạy truy vấn động trong thủ tục được lưu trữ trong khi chọn số lượng bản ghi