Сохранение значений в памяти с использованием ASP.NET Core v2

Используя Razorpage, у меня есть 5 полей выбора, заполненных onPageLoad из запросов SQL с использованием списков С#, содержащих ключ и значение

При сохранении формы мне нужно снова получить ключ и значения в этих списках

Поэтому, чтобы предотвратить больше запросов к SQL, я хотел бы сохранить список (ключ, пара значений) в памяти при загрузке, чтобы я мог получить к нему доступ позже, используя С#

Как мне это сделать?

Я использую ASP.NET Core v2 и С#.

Спасибо

Томас


person Thomas Adrian    schedule 19.12.2017    source источник
comment
Эти ценности основаны на сессии или одинаковы для всех? Если они одинаковы для всех, вы можете сохранить их в элементе кеша MemoryCache.   -  person Raphael    schedule 19.12.2017
comment
да они одинаковы для всех пользователей   -  person Thomas Adrian    schedule 19.12.2017


Ответы (1)


Вы можете использовать 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>();
 }

Дополнительные сведения см. в разделе Кэширование в памяти в ASP.NET Core< /а>

person Raphael    schedule 19.12.2017