Иногда linq-to-sql делает запросы неожиданным образом. Вы проверяли, как ваши linq запросы переводятся в sql? Используйте Sql Server Profiler (доступно в меню инструментов на сервере управления SQL), чтобы проверить сгенерированные запросы. Я написал некоторую информацию об этом здесь .
Как только вы узнаете, что у вас сгенерированы хорошие запросы, вам следует проверить, не является ли выполнение любого из них узким местом в производительности. Здесь также может помочь профилировщик. Если некоторые запросы выполняются медленно, попробуйте добавить соответствующие индексы.
Если у вас нет сайта с большим объемом, эти шаги должны обеспечить хорошую производительность без необходимости кэширования.