I currently use the repository pattern in my ASP.NET MVC 3 app.
I use OutputCache to lessen the load on my database by decorating my controller methods with a data annotation similar to this:
[OutputCache(Duration = 3600, VaryByParam = "userName")]
Ultimately, what I'd like to achieve is a level of caching whereby the data is cached until it is updated (i.e. it changes). I am using Entity Framework 4.1 for ORM.
What would be the recommended way to approach this using my selected stack?