Это довольно неэффективно.Но хорошо, что вы заметили это, потому что запросы к этой базе данных часто являются узким местом в любом данном запросе.
Для начала вам следует извлечь эти данные в словарь или модель, а затем передать их частичным представлениям для рендеринга, аналогичного тому, что изложил Бассам.В идеале, в контроллере необходимо позаботиться о том, чтобы придерживаться парадигмы MVC, а затем перейти к основному представлению, которое затем передавало бы соответствующие данные частичным представлениям.
Как только вы освоите ASP.NET MVC, вы сможете начать изучать кеширование.Я бы пока держался подальше от кеширования, потому что если у вас есть данные, которые быстро изменяются, вам будет немного сложно, так как вам нужно начать беспокоиться об обновлении / синхронизации / и т.д.