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?