使用 ASP.NET Core v2 在内存中保存值

Saving values in memory using ASP.NET Core v2

使用 Razorpage 我有 5 个 Select 框从 SQL 使用包含键和值的 C# 列表的查询填充 onPageLoad

保存表单时,我需要再次获取这些列表中的键和值

因此,为了防止对 SQL 进行更多查询,我想在加载时将列表(键、值对)存储在内存中,以便稍后使用 C#

访问它

我该怎么做?

我正在使用 ASP.NET Core v2 和 C#

谢谢

托马斯

您可以使用IMemoryCache

在你的Startup.cs

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMemoryCache();
    }
}

在你的控制器中

public class HomeController : Controller
{
    private IMemoryCache _cache;

    public HomeController(IMemoryCache memoryCache)
    {
        _cache = memoryCache;
    }
}

然后去取

 var cacheEntry = _cache.GetOrCreate("your-cache-key", entry =>
 {
    entry.SlidingExpiration = TimeSpan.FromMinutes(10);

    // return your key/value list;
    return new Dictionary<string,string>();
 }

查看更多信息In-memory caching in ASP.NET Core