2011-02-06 23 views
10

Tengo problemas para descifrar algo con el código de Entity Framework Lo primero en CTP 5. Está haciendo un caché de objetos y no quiero. Por ejemplo, cargo una página (trabajando con un sitio ASP.NET MVC) que carga un objeto. Luego voy a cambiar la base de datos. Vuelvo a cargar la página y los cambios no se reflejan. Si elimino el sitio y lo vuelvo a ejecutar, obviamente lo recupera. ¿Cómo puedo, ya sea en general para un tipo, o incluso para una consulta en particular, decirle que siempre obtenga una copia nueva? Creo que podría tener algo que ver con MergeOption, pero tengo problemas para encontrar ejemplos que funcionen con CTP 5. Gracias.Desactivar el almacenamiento en caché de objetos en Entity Framework CTP5

Respuesta

15

Bien, lo descubrí. El siguiente será a veces tire de la caché EF:

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

Es posible utilizar AsNoTracking() para eludir la materia de seguimiento de cambios/almacenamiento en caché:

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