2011-02-06 21 views
10

Non riesco a capire qualcosa con il codice di Entity Framework Prima roba in CTP 5. Si sta facendo cache di oggetti e io non voglio farlo. Ad esempio, carico una pagina (lavorando con un sito MVC di ASP.NET) che carica un oggetto. Allora vado a cambiare il database. Ricarico la pagina e le modifiche non sono riflesse. Se uccido il sito e lo rieseguo, ovviamente riprende. Come faccio, in genere per un tipo o anche per una particolare query, digli di andare sempre a prendere una nuova copia. Penso che potrebbe avere qualcosa a che fare con MergeOption ma sto avendo problemi a trovare esempi che funzionano con CTP 5. Grazie.Disattivare la memorizzazione nella cache di oggetti in Entity Framework CTP5

risposta

15

Ok, ho capito. Di seguito vi talvolta tirare dalla cache EF:

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

È possibile utilizzare AsNoTracking() per bypassare la roba rilevamento delle modifiche/caching:

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