Подтвердить что ты не робот

Выключить кэширование объектов в платформе Entity Framework CTP5

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

4b9b3361

Ответ 1

Хорошо, понял. Из кэша 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();