在数据库

时间:2017-09-07 14:22:29

标签: asp.net-core

我直接在我的数据库(postgresql)中更改了特定条目的列值。在查看此条目的webfrontend中的详细信息时,我看到此值未更新,但在更改数据库之前仍然是旧值(可能是因为这是缓存的?)。他们是否有办法清除这种缓存?

我在startup.cs文件中为缓存数据写的唯一内容是

Startup.cs

public void ConfigureServices(IServiceCollection services)
{
    ...

    //Memory cache
    services.AddMemoryCache();

    ...
}

2 个答案:

答案 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);
    ...
}