text: Q:
  
  How do I cache an IQueryable object?
  
  I've got this method that returns a Linq-to-SQL query for all the rows in a 'UserStatus' table:
  public IQueryable<BLL.Entity.UserStatus> GetAll()
  {
      var query = from e in _SelectDataContext.UserStatus
                  select new BLL.Entity.UserStatus
                  {
                      UserStatusId = e.UserStatusId,
                      Enum = e.Enum,
                      Name = e.Name
                  };
  
      return query;
  }
  
  It's just a look-up table that will hardly ever change so I'd like to cache the results. I can convert it to a List<> and cache that, but I'd prefer to return an IQueryable object as other methods in the class depend on that. Can anyone help? Thanks.
  
  A:
  
  could query.ToList().AsQueryable() be a solution for you? not the best one sure.
  
  A:
  
  You can't really do this--the Querable is more a pointer than the data. If you are caching, you are caching data, so you need to have the data loaded. Yapiskan has the right idea--cache the resulting ToList() and bring it back to AsQueryable().
  Do note that the cached list won't have a DataContext so your query options will be limited to data loaded in the list.
  
  