Tôi đang cố gắng cập nhật hồ sơ bằng cách sử dụng EF6. Đầu tiên tìm bản ghi, nếu tồn tại, cập nhật nó. Đây là mã của tôi: -
var book = new Model.Book
{
BookNumber = _book.BookNumber,
BookName = _book.BookName,
BookTitle = _book.BookTitle,
};
using (var db = new MyContextDB())
{
var result = db.Books.SingleOrDefault(b => b.BookNumber == bookNumber);
if (result != null)
{
try
{
db.Books.Attach(book);
db.Entry(book).State = EntityState.Modified;
db.SaveChanges();
}
catch (Exception ex)
{
throw;
}
}
}
Mỗi lần tôi cố cập nhật bản ghi bằng mã trên, tôi gặp lỗi này: -
{System.Data.Entity.Infr Hạ tầng.DbUpdateConcurrencyException: Lưu trữ cập nhật, chèn hoặc xóa câu lệnh ảnh hưởng đến số lượng hàng không mong muốn (0). Các thực thể có thể đã được sửa đổi hoặc xóa kể từ khi các thực thể được tải. Làm mới các mục nhập ObjectStateManager
catch (Exception ex){throw;}
là dư thừa và bạn hoàn toàn có thể loại bỏ nó.