Tôi đang chạy một số mã điều chỉnh chạy trên một chồng lớn các thực thể, vì nó tiến trình giảm tốc độ, đó là vì số lượng thực thể được theo dõi trong ngữ cảnh tăng theo mỗi lần lặp lại, Có thể mất nhiều thời gian để tôi lưu các thay đổi vào cuối mỗi lần lặp lại. Mỗi lần lặp lại là độc lập và không thay đổi các thực thể được nạp trước tiên.Làm cách nào để xóa các thực thể được theo dõi trong khung thực thể
Tôi biết tôi có thể tắt theo dõi thay đổi nhưng tôi không muốn, bởi vì nó không phải là mã chèn số lượng lớn, nhưng tải các thực thể và tính toán một vài điều và nếu các con số không chính xác đặt số mới và cập nhật/xóa/tạo một số thực thể bổ sung. Tôi biết tôi có thể tạo một DbContext mới cho mỗi lần lặp và có lẽ điều đó sẽ chạy nhanh hơn làm tất cả trong cùng một trường hợp, nhưng tôi nghĩ rằng có thể có một cách tốt hơn.
Vì vậy, câu hỏi là; Có cách nào để xóa các thực thể được tải trước trong ngữ cảnh db không?
bạn chỉ có thể gọi 'context.Entry (thực thể) .State = EntityState.Detached' và nó sẽ dừng lại theo dõi ing thực thể cụ thể đó. –
Tại sao bạn không tạo ra một bối cảnh mới? Có thực sự không có chi phí lớn trừ khi bạn cần mã rất tối ưu. –
khung thực thể truy cập máy chủ cơ sở dữ liệu chỉ cho các thực thể đã thay đổi, bạn không có mối quan tâm về hiệu suất về điều đó. nhưng bạn có thể tạo một ngữ cảnh mới chỉ bao gồm các bảng bạn làm việc để làm cho nó nhanh hơn. –