Quá trình triển khai của nhà cung cấp khung thực thể của Oracle rất kém nhưng có một số cách để làm cho việc này hoạt động.
-
Đơn giản nhưng khó chịu - sử dụng NULL hoặc triển khai trình khởi tạo cơ sở dữ liệu riêng:
Database.SetInitializer<DatabaseContext>(null);
hoặc
class DatabaseInitializer : IDatabaseInitializer<DatabaseContext>
{
public void InitializeDatabase(DatabaseContext context)
{
// your implementation
}
}
Database.SetInitializer(new DatabaseInitializer());
Đặt lần khởi tạo trước khi truy cập lần đầu vào cơ sở dữ liệu của bạn.
- Nếu bạn muốn sử dụng chuyển đổi, hãy tạo chế độ xem của bạn và sau đó thêm di chuyển với việc bỏ qua các thay đổi, ví dụ:sử dụng bảng điều khiển gói
add-migration initial -ignorechanges
. Điều này sẽ làm cho EF bỏ qua sự mâu thuẫn giữa lược đồ và mô hình DB (vì nó chỉ kiểm tra các bảng từALL_TABLES
, không phải lượt xem) vì vậy nó sẽ không cố gắng tạo bảng. Có một lỗi trong việc triển khai Oracle EF mà nếu quá trình di chuyển ban đầu bị trống, nó sẽ giảm và tạo lại__MigrationHistory
vì vậy, quá trình di chuyển ban đầu của bạn phải liên tục ít nhất một bảng trước khi bạn thêm di chuyển chế độ xem hoặc bạn cần thêm một bảng sau đó.