Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Turn Off Object Caching in Entity Framework CTP5

I am having trouble figuring out something with the Entity Framework Code First stuff in CTP 5. It is doing caching of objects and I don't want it to. For example, I load a page (working with an ASP.NET MVC site) which loads an object. I then go change the database. I re-load the page and the changes are not reflected. If I kill the site and rerun it then it obviously re-fetches. How do I, either generally for a type, or even for a particular query, tell it to always go get a new copy. I think it might have something to do with MergeOption but I'm having trouble finding examples that work with CTP 5. Thanks.

like image 409
Mallioch Avatar asked Feb 06 '11 01:02

Mallioch


1 Answers

Okay, figured it out. The following will sometimes pull from the EF cache:

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

You can use AsNoTracking() to bypass the change tracking/caching stuff:

return (from m in _dataContext.Monkeys.AsNoTracking()
        where m.MonkeyId == monkeyId
        select m).FirstOrDefault();
like image 170
Mallioch Avatar answered Sep 18 '22 21:09

Mallioch