我直接在我的数据库(postgresql)中更改了特定条目的列值。在查看此条目的webfrontend中的详细信息时,我看到此值未更新,但在更改数据库之前仍然是旧值(可能是因为这是缓存的?)。他们是否有办法清除这种缓存?
我在startup.cs文件中为缓存数据写的唯一内容是
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
...
//Memory cache
services.AddMemoryCache();
...
}
答案 0 :(得分:0)
当然你可以Remove
。创建缓存时,需要设置缓存密钥。使用相同的密钥删除缓存。例如:
_cache.Remove("CacheKey");
答案 1 :(得分:0)
问题似乎在启动时。数据库上下文设置为ServiceLifetime.Singleton,通过将其更改为ServiceLifetime.Scoped它解决了我的问题:
public void ConfigureServices(IServiceCollection services)
{
...
var connectionString = Configuration["ConnectionStrings:PostgresConnection"];
services.AddDbContext<ApplicationDbContext>(opts => opts.UseNpgsql(connectionString), ServiceLifetime.Scoped);
...
}