Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用ASP.NET Core v2在内存中保存值_C#_Asp.net_Entity Framework_Asp.net Core 2.0_Razor Pages - Fatal编程技术网

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

C# 使用ASP.NET Core v2在内存中保存值,c#,asp.net,entity-framework,asp.net-core-2.0,razor-pages,C#,Asp.net,Entity Framework,Asp.net Core 2.0,Razor Pages,使用Razorpage,我在PageLoad上使用包含键和值的C列表从SQL查询填充了5个选择框 保存表单时,我需要再次掌握这些列表中的键和值 因此,为了防止更多的SQL查询,我希望在加载时将列表键、值对存储在内存中,以便以后可以使用C访问它 我该怎么做 我正在使用ASP.NET核心v2和C 谢谢 托马斯你可以使用IMemoryCache 在Startup.cs中 public class Startup { public void ConfigureServices(IServiceC

使用Razorpage,我在PageLoad上使用包含键和值的C列表从SQL查询填充了5个选择框

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

因此,为了防止更多的SQL查询,我希望在加载时将列表键、值对存储在内存中,以便以后可以使用C访问它

我该怎么做

我正在使用ASP.NET核心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>();
 }
有关更多信息,请参见。您可以使用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>();
 }

有关更多信息,请参见

这些值是基于会话的还是对每个人都相同?如果每个人的值都相同,则可以将其保存在MemoryCache缓存项中。是的,所有用户的值都相同这些值是基于会话的还是每个人的值都相同?如果它们对每个人都相同,您可以将它们保存在MemoryCache缓存项中。是的,它们对所有用户都相同