Очистить кэш второго уровня (кеш запросов) Entity Framework с помощью веб-API - PullRequest
0 голосов
/ 08 октября 2018

Это то, что я использую:

  • Веб-формы ASP.NET
  • SQL Server 2008
  • Веб-API 2

Я пытаюсь реализовать кэш второго уровня, используя EntityFramework.Cache, который я установил из диспетчера пакетов Nuget.Пока что результаты запроса кешируются.Я читал о времени истечения и времени скольжения, но мы должны установить для него определенное время. Теперь, что я хочу сделать, это очистить кэш второго уровня при обновлении базы данных (SQL Server 2008).

Мой код выглядит следующим образом:

[HttpGet]
public IHttpActionResult Get(string id)
{
    try
    {
        var viewModels = new List<LikeProduct>();

        using (TestDatabaseEntities db = new TestDatabaseEntities())
        {
            var res = db.LikeProducts.Where(xctitemprice => xctitemprice.OrigItem == id).ToList();

            foreach (var model in res)
            {
                 var todoViewModel = new LikeProduct
                                         {
                                             ItemId = model.ItemId,
                                             LikeCounter = model.LikeCounter,
                                             OrigItem = model.OrigItem
                                          };
                 viewModels.Add(todoViewModel);
            }

            return Json(viewModels);
        }
    }
    catch
    {
        return InternalServerError();
    }
}

Могу ли я добавить сюда некоторые изменения, которые сначала проверят, обновлен ли результат запроса или нет.Если да, то очистите кеш и получите результат из БД, иначе верните кэшированные данные.

Извините, если вопрос не ясен. Пожалуйста, дайте мне знать, если нужна какая-либо другая информация.

Заранее спасибо,:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...