Exemplo n.º 1
0
 private void EnsureObjectQuery()
 {
     if (!_objectQueryResolved && _objectQuery == null)
     {
         _objectQuery         = DbCacheUtil.GetObjectQuery(_source) ?? _source as ObjectQuery;
         _objectQueryResolved = true;
     }
 }
Exemplo n.º 2
0
        /// <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);
        }