private void EnsureObjectQuery() { if (!_objectQueryResolved && _objectQuery == null) { _objectQuery = DbCacheUtil.GetObjectQuery(_source) ?? _source as ObjectQuery; _objectQueryResolved = true; } }
/// <summary> /// Forces query results to be cached. /// Allows caching results for queries using non-deterministic functions. /// </summary> /// <typeparam name="T">Query element type.</typeparam> /// <param name="source">Query whose results will be cached. Must not be null.</param> public static IQueryable <T> Cached <T>(this IQueryable <T> source) where T : class { Guard.NotNull(source, nameof(source)); // TODO: implement Uncached() var objectQuery = DbCacheUtil.GetObjectQuery(source) ?? source as ObjectQuery; if (objectQuery != null) { SingletonQueries.Current.AddCachedQuery( objectQuery.Context.MetadataWorkspace, objectQuery.ToTraceString()); } return(source); }