You can use the MemoryCache class to save the result of this query under some key. The key may be a hash of the query criteria (if you have one). And here are some guides on MSDN on how to use them.
When implementing caching, remember that this cache is stored in memory by default. This means that if you run this application in a web farm, it may be more interesting to use a distributed cache so that all nodes in the farm have the same cached data. This can be done by extending the ObjectCache class with some distributed caching solution. For example, memcached is popular and has a .NET provider . Another distributed caching is AppFabric .
source share