当前位置: 首页 > 知识库问答 >
问题:

实体框架似乎在缓存数据

龙逸清
2023-03-14
var mm = o.GetContent(page, title);
mm.Body = "Test";
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);
    }   
}

防止在ASP.NET MVC中对使用属性的特定操作进行缓存

ASP.NET MVC如何禁用自动缓存选项?

共有1个答案

祝叶五
2023-03-14

您的DbContext实例是静态的:

private static ApplicationDbContext Da = new ApplicationDbContext();

因此,在您回收应用程序池之前,它一直存在。dbcontext保存以前看到的项的缓存,直到调用refresh()方法。

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

 类似资料:
  • 问题内容: 我正在使用Nodejs和Express Js。另外,我将NowJS添加到Express Js中以进行一些实时处理。 在配置文件中,我有 然后使用以下命令运行该应用程序: 但是,文件(图像,css,js)似乎没有被缓存,它们总是作为新文件提供。 P / s:我刚刚在localhost上进行了测试,缓存似乎可以在localhost上运行,但是,当上传到服务器时,缓存不再起作用。 问题答案:

  • 问题内容: 我有一个奇怪的问题,这是我以前从未经历过的。我使用实体框架检索我的记录。 我有以下电话: 我希望此调用不会缓存。因此,当我进行此调用时,我希望它可以查询数据库并检索最新的对象。但是,事实并非如此。 我称此方法为相距相对较短时间的相对两倍(约5-10秒)。但是在此期间,该表中的十进制值可以由某些第三方更改。 但是,即使值更改,该调用也会检索未更新的版本。 情况示例 : 我拨打电话,看到该

  • 好吧,我知道我对C#和MVC还很陌生,但我正在尝试使用代码优先的方法向数据库中添加项。 现在,我已经成功地为数据库创建了新条目,但当我转到SQL Server时,却找不到数据库或表。 因此,我的问题是,这些数据存储在哪里,因为我无法在SQL Server中看到它,就像我手动创建的其他数据库一样? 我的ConnectionString是:

  • 当我的应用程序长时间运行时,一切都会正常运行。但当我将列类型从int更改为text(删除表并重新创建)时,我发现了一个异常: 这个异常偶尔会出现。我正在使用准备语句执行查询,我认为它是从DataStax的驱动程序缓存的。 我正在使用AWS Keyspace(Cassandra版本3.11.2),DataStax驱动程序4.6。这是我的application.conf:

  • 在Spring有什么方法可以达到同样的效果。 我确实在这里查看了@cacheable http://www.baeldung.com/spring-cache-tutorial 但是我无法理解我是如何使spring使用我的“memcached”类的,更具体地说,我在哪里连接我的“memcached”类,以便它可用于上面示例中的类“abc

  • 实体框架5.0首先使用现有数据库编写代码。使用电动工具对类进行逆向工程。一切都很好。数据库有两个表。一个父母和一个孩子的外键返回到父母ID。ID都是带有自动增量的int。我添加了许多父母记录,现在想将孩子记录添加到特定的父母。我能看到的唯一方法是通过在父母表中搜索名称或其他属性并返回ID来找到适当的父母ID。然后在添加孩子时在外键属性中使用该ID。我不想设置新父母,所以这是将孩子添加到现有父母的唯