2011-02-06 2 views
10

У меня возникли проблемы с определением чего-то с помощью кода структуры Entity. Первый элемент в CTP 5. Он выполняет кэширование объектов, и я не хочу этого. Например, я загружаю страницу (работая с сайтом MVC ASP.NET), которая загружает объект. Затем я перехожу к изменению базы данных. Я повторно загружаю страницу, и изменения не отражаются. Если я убью сайт и повторно запустил его, он, очевидно, повторится. Как я, как правило, для типа, или даже для конкретного запроса, скажу ему всегда получать новую копию. Я думаю, что это может иметь какое-то отношение к MergeOption, но мне трудно найти примеры, которые работают с CTP 5. Спасибо.Отключить кэширование объектов в платформе Entity Framework CTP5

ответ

15

Хорошо, понял. Далее будет иногда вытаскивать из кэша EF:

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

Вы можете использовать AsNoTracking() для обхода отслеживания изменений/кэширования материал:

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