Вы можете сделать это, да, но это не даст желаемого эффекта, поскольку (при условии, что dc является контекстом данных linq to sql) IQueryable - это не набор данных, это хранимый запрос, который будет выполнен позже вам нужно будет хранить список IList или аналогичный, при желании вы все равно можете вернуть его как IQueryable, хотя это может сбить с толку других.
Используйте ToList () перед кэшированием.