C# 实体框架似乎正在缓存数据

C# 实体框架似乎正在缓存数据,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,我的问题是,当我编写一个基本EF查询从数据库获取数据时,它会很好地检索数据,但是当我更改SQL Server数据库中的数据并重新加载查询时,我会返回相同的数据集,而不是新数据。而且数据需要一段时间才能成为修改后的信息 var mm = o.GetContent(page, title); 例如,上面的查询将返回 mm.Body = "Test"; 然后,如果我将SQL Server数据库中的Body更改为Test1,并重新加载查询,它不会返回Test1 public String GetCo

我的问题是,当我编写一个基本EF查询从数据库获取数据时,它会很好地检索数据,但是当我更改SQL Server数据库中的数据并重新加载查询时,我会返回相同的数据集,而不是新数据。而且数据需要一段时间才能成为修改后的信息

var mm = o.GetContent(page, title);
例如,上面的查询将返回

mm.Body = "Test";
然后,如果我将SQL Server数据库中的
Body
更改为
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);
    }   
}
我访问了许多SO帖子:


您的DbContext实例是静态的:

private static ApplicationDbContext Da = new ApplicationDbContext();
因此,每个AppDomain都是如此,因此它一直存在,直到您回收应用程序池为止。
DbContext
保存以前看到的项目的缓存,直到您找到它为止


但不要那样做。不要让它静止。使用实体框架作为工作单元,尽可能缩小范围。为每个请求创建一个实例。

您能说明如何生成查询吗?完整的LINQ语句?嗨,Kamo,我已经编辑了我的问题。再次查询时,您是否正在创建您的新实例
ef context
,如果您不是,则是ef正在查询它的缓存谢谢,这就是问题所在。就像您的语句“每个请求创建一个实例”的清晰性一样