Как я могу кэшировать результат запроса в классе, а затем повторно использовать его для поиска на основе параметра, переданного в метод в C #? - PullRequest
0 голосов
/ 25 февраля 2019

Я пытаюсь реализовать функциональность свойств поиска в веб-приложении ASP.NET MVC, где страница имеет список опыта, и каждому опыту присваивается уникальный идентификатор, а также список свойств.Когда пользователь нажимает на один опыт, он отображает свойства, связанные с этим опытом.Теперь, когда пользователь нажимает на другой опыт, он принимает оба идентификатора и возвращает общие свойства.У меня есть класс, который кэширует результат базы данных и хранит его.

public class GetExperienceResponse
{
    public string Experienceid { get; set; }
    public List<string> Properties { get; set; }
   //Example: Expereienceid="E1", Properties="P1,P2,P3" 
              Experienceid="E2",  Properties="P3,P4,P5"
}


public static List<GetExperienceAmenityResponse> GetExperience()
{
//returns experience and related properties here and cached it 
}

Метод, который я использую для свойств поиска, основанных на выбранном опыте:

public ActionResult ExperienceSearch(string id)
    {
        List<GetExperienceResponse> Experiences  = new List<GetExperienceResponse>();
        Experiences = GetExperience(); //Populate the Experience result list
       //logic for searching. When Click on Experience1, it will pass id "E1" and should display Properties "P1", "P2" and "P3". When Click on both Experience it should display common property which is "P3" here (Intersection of Experience 1 and  Experience 2).
        return View();
    }

Каков наилучший подход для реализации этого поиска?Могу ли я использовать запрос LINQ для возвращенного результата?Я буду признателен за любую помощь.Заранее большое спасибо!

1 Ответ

0 голосов
/ 25 февраля 2019

Может иметь уникальный Cachekey для индивидуального опыта и иметь общий ключ кэша (hashkey от Experienceid1 & Experienceid2) для общего свойства.

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