Tôi gặp phải lỗi khi thực hiện tác vụ đơn giản.Ngoại lệ DBConcurrency sử dụng Entity Framework 6
Tôi đang sử dụng mã Entity Framework 6 trước.
Tôi đang thêm một thực thể mới vào ngữ cảnh của mình, xóa nó và sau đó thực hiện lưu. Điều này tạo ra một ngoại lệ DBConcurrency (tôi là người dùng duy nhất).
Để thực hiện điều này, tôi thực hiện như sau:
zurich.TagProjectGroupItems.Add (tagProjectGroupItem); zurich.TagProjectGroupItems.RemoveRange (các mục);
(đối tượng ban đầu thêm vào là một phần của bộ sưu tập)
int counter = zurich.SaveChanges();
này tạo ra các ngoại lệ sau đây:
Một ngoại lệ của loại 'System.Data.Entity.Infrastructure.DbUpdateConcurrencyException' xảy ra ở EntityFramework.dll nhưng không được xử lý theo mã người dùng Thông tin thêm: Lưu trữ cập nhật, chèn hoặc xóa câu lệnh đã ảnh hưởng đến số hàng không mong muốn (0). Các thực thể có thể đã được sửa đổi hoặc bị xóa vì các thực thể đã được tải. Làm mới các mục ObjectStateManager.
Ngữ cảnh đối tượng cho tôi biết rằng tôi có 0 mục nhập mới, 0 đã cập nhật và 1 để xóa. Tôi sẽ tưởng tượng nó đang cố gắng để loại bỏ các thực thể từ cơ sở dữ liệu và trả về 0 kết quả vì thực thể đã không được viết.
Tôi đang làm điều gì đó đáng sợ sai? Trước đây tôi chưa bao giờ sử dụng mã và chỉ sử dụng mô hình đầu tiên trong EF4. Tôi bối rối.
Rất cám ơn,
Rob
Bạn có nói rằng đối tượng mục mà bạn đang xóa khỏi bộ sưu tập chứa 'tagProjectGroupItem' mà bạn * vừa thêm * vào ngữ cảnh không? –
Đúng Ciaran. Các ui cho phép người dùng thêm một thực thể và cũng để loại bỏ/xóa nó. Tôi có thể làm loại bỏ nhưng tôi nhận được kết quả tương tự rõ ràng. –
Nhưng tại sao thêm mục vào ngữ cảnh nếu bạn định xóa mục đó ngay sau đó? Liệu việc thêm và loại bỏ các thực thể không phải là các sự kiện/xử lý riêng biệt? –