2011-02-06 37 views
10

Tôi đang gặp khó khăn trong việc tìm ra điều gì đó với Entity Framework Code Công cụ đầu tiên trong CTP 5. Nó đang làm bộ nhớ đệm của các đối tượng và tôi không muốn nó. Ví dụ, tôi tải một trang (làm việc với một trang ASP.NET MVC) tải một đối tượng. Sau đó tôi đi thay đổi cơ sở dữ liệu. Tôi tải lại trang và các thay đổi không được phản ánh. Nếu tôi giết các trang web và chạy lại nó sau đó nó rõ ràng re-fetches. Làm thế nào để tôi, hoặc nói chung cho một loại, hoặc thậm chí cho một truy vấn cụ thể, bảo nó luôn luôn đi lấy một bản sao mới. Tôi nghĩ rằng nó có thể có một cái gì đó để làm với MergeOption nhưng tôi gặp khó khăn trong việc tìm kiếm các ví dụ làm việc với CTP 5. Cảm ơn.Tắt Object Caching trong Entity Framework CTP5

Trả lời

15

OK, đã tìm ra. Sau đây đôi khi sẽ kéo từ bộ nhớ cache EF:

return (from m in _dataContext.Monkeys 
     where m.MonkeyId == monkeyId 
     select m).FirstOrDefault(); 

Bạn có thể sử dụng AsNoTracking() để bỏ qua những thứ thay đổi theo dõi/bộ nhớ đệm:

return (from m in _dataContext.Monkeys.AsNoTracking() 
     where m.MonkeyId == monkeyId 
     select m).FirstOrDefault();