Я некоторое время размышлял, как лучше всего кэшировать IQueryables. Я использую шаблон хранилища для извлечения данных в такой класс, как этот:
public class Item
{
public int Id { get; set; }
public string Name { get; set; }
public IQueryable<Category> { get; set; } // For simplicity. It is actually a LazyList<Category> containing an IQueryable
}
Теперь, как мне лучше кэшировать этот объект? Я хотел бы сохранить отложенное выполнение для запрашиваемого, так как в действительности есть много других вещей, кроме Category, которые могут быть связаны с элементом, и я бы не стал выбирать их для хранения на объекте, поскольку объекты могут стать слишком большими, они могут быть кэшированы отдельно.
Я думаю, Скомпилированный запрос мог бы как-то это сделать, я просто не совсем понимаю, как это сделать. Кто-нибудь нашел хорошее решение для этого? Кажется, это довольно распространенный шаблон для использования.