title: How to cache database tables to prevent many database queries in Asp.net C# mvc
body: <p>I build my own cms using Asp.net mvc 4 (c#), and I want to cache some database data, likes: localization, search categories (it's long-tail, each category have it's own sub and sub-sub categories),  etc..</p>
  
  <p>It's will be overkill to query the database all the time, because it can be more than 30-100 queries for each page request, however the users update those database rarely</p>
  
  <p><strong>So what is the best way  (performance and convenience) to do it?</strong></p>
  
  <p>I know how use the OutputCache of the action, but it's not what I need in this situation , it's cache the html, but what I need is for example, that my own helper <code>@html.Localization("Newsletter.Tite")</code> will take the value of the language, or any another helper that interact with data etc.</p>
  
  <p>I think (not really sure) that I need to cache the data I want, only when the application is invoke for the first time, and then work with the cache location, but I don't have any experience even about to it.</p>