Tôi đã tạo ngữ cảnh của riêng mình mà kế thừa từ DbContext. Giả sử tôi có 1 bài đăng trong bảng [Bài viết] của tôi trong cơ sở dữ liệu. Hãy xem xét trường hợp này:Bộ nhớ đệm trong của DbContext (?)
- Tôi yêu cầu DbContext chỉ đăng bài này cho lần đầu tiên. Và DbContext trả về nó như mong đợi.
- Tôi thay đổi một cột trong bảng [Bài đăng] theo cách thủ công.
- Tôi làm mới trang web của mình = Tôi yêu cầu DbContext cho bài đăng này một lần nữa.
- DbContext trả về bài đăng có giá trị cũ cho cột cụ thể này!
Tôi nhìn vào SQL Profiler và cơ sở dữ liệu IS trúng mỗi khi tôi làm mới trang web của tôi, vậy tại sao các bài trở có giá trị cũ? Tôi đoán DbContext đang cố gắng để rất thông minh và có một số cơ chế bộ nhớ đệm nội bộ, nhưng nó sẽ được tốt đẹp để thông báo cho tôi rằng anh ta rất thông minh ...
Ai đó có thể giải thích điều này cho tôi?
bản sao có thể có của [mô hình EF 4.0 lưu dữ liệu vào bộ đệm, và không phát hiện dữ liệu đã sửa đổi.] (Http://stackoverflow.com/questions/3617987/ef-4-0-model-caching-the-data-and- không-phát hiện-sửa đổi-dữ liệu) –
Câu hỏi của bạn được chia thành hai câu hỏi đã được hỏi. Sự cố lưu vào bộ nhớ cache: http://stackoverflow.com/questions/3617987/ef-4-0-model-caching-the-data-and-does-not-detect-the-modified-data/3621477#3621477 Vấn đề ngữ cảnh được chia sẻ : http://stackoverflow.com/questions/3653009/entity-framework-and-connection-pooling/3653392#3653392 –
Trường hợp của bạn là tĩnh 'DbContext' hay là nó được tạo trên mọi yêu cầu trang? –