2010-02-08 60 views
6

Tôi đã tự hỏi nếu nó là khôn ngoan để cache đối tượng ObjectContext của Entity Framework trong Cache; điều này sẽ cho tôi vấn đề với nhiều kết nối cùng một lúc mà người dùng sẽ gặp vấn đề với điều đó?ADO.NET Entity Framework ObjectContext - Caching Câu hỏi

Tôi đã nhận được lỗi như: 'kết nối hiện đang bị đóng' và tự hỏi liệu đó có phải do nhiều người dùng và lưu vào bộ nhớ ObjectContext hay không hoặc liên quan đến việc nhấn làm mới nhiều lần hoặc dừng trang và nhanh chóng làm điều gì đó khác (một cái gì đó mà chúng tôi đã làm để có được lỗi).

+0

Bạn chỉ đọc thông tin hoặc bạn đang sử dụng phương pháp Lưu không? – Zyphrax

+0

Tôi làm cả đọc/ghi với nó. –

Trả lời

5

Tôi sẽ không tư vấn cho điều đó. ObjectContext cần phải hoạt động để quan sát các thay đổi đối với bất kỳ thực thể nào bạn đang tích cực làm việc hoặc bạn cần ngắt kết nối bất kỳ thực thể hoạt động nào trước khi lưu vào bộ nhớ cache ObjectContext.

Nếu bạn không có thực thể hoạt động, thì không cần phải cache một ObjectContext thực sự. Trong EFv1 làm việc với các thực thể bị ngắt kết nối có vấn đề ở mức tốt nhất, vì vậy tôi sẽ không cache hoặc chờ cho Entity Framework v4 cho phép các thực thể quản lý hơn (thực thể tự theo dõi, thực thể POCO, vv).

Chỉ cần nghĩ rằng tôi muốn thêm một điểm cuối cùng - nhiều chuỗi - cũng có thể có vấn đề. Áp dụng các thay đổi sẽ cố gắng cam kết tất cả các thay đổi được theo dõi bởi ObjectContext. Nếu nhiều người dùng đang chia sẻ một ngữ cảnh ... tốt, hy vọng bạn có thể thấy các vấn đề ..

+0

Cảm ơn, vì vậy mà không có bộ nhớ đệm bối cảnh, bạn có đề nghị tách các thực thể trả lại từ các truy vấn không? –

+0

Ngoài ra, điều gì sẽ xảy ra nếu tôi sử dụng bộ sưu tập HttpContext.Current.Items, chỉ lưu trữ nó cho yêu cầu hiện tại? Tôi không chắc đó có phải là toàn cầu đối với người dùng hay không, nhưng đó có phải là một mối quan tâm tương tự khác không? Cảm ơn. –

+0

Xin lỗi về câu trả lời trễ - hiện đang trên đường. Tách rời có thể hoạt động miễn là bối cảnh ban đầu được xử lý đúng cách – RobS

Các vấn đề liên quan