A lightweight query result caching framework for .NET