public CacheKey GetCacheKey(Expression expression) { // use the string representation of the expression for the cache key string key = expression.ToString(); // the key is potentially very long, so use an md5 fingerprint // (fine if the query result data isn't critically sensitive) key = ToMd5Fingerprint(key); return(CacheKey.Create(null, key));; }