Моя проблема заключается в том, что когда я пишу основной запрос EF для получения данных из базы данных, он извлекает данные в порядке, но когда я меняю данные в базе данных SQL Server и перезагружаю запрос, Я получаю тот же набор данных, а не новые данные. И это требует времени, чтобы данные были измененной информацией.Entity Framework, похоже, кэширует данные
var mm = o.GetContent(page, title);
выше запроса, например, вернет
mm.Body = "Test";
Тогда, если я изменю Body
в базе данных SQL Server для Test1
и перезагрузите запрос, он не приносит обратно Test1
.
public String GetContent(String page, String title)
{
var o = new DataContext();
var mm = o.GetContent(page, title);
return HttpUtility.HtmlDecode(mm.Body);
}
public class DataContext
{
private static ApplicationDbContext Da = new ApplicationDbContext();
public Content GetContent(String page, String title)
{
return Da.Content.SingleOrDefault(c => c.Page == page && c.Title == title);
}
}
Я посетил ряд С.О. сообщений:
Prevent Caching in ASP.NET MVC for specific actions using an attribute
ASP.NET MVC how to disable automatic caching option?
Не могли бы вы показать, как вы строите запрос? Полная инструкция LINQ? – Kamo
Привет, Камо, я отредактировал мой вопрос. –
При повторном запросе вы создаете новый экземпляр вашего 'ef context', если вы не являетесь его ef, который запрашивает его кеш – 3dd