Exemplo n.º 1
0
        public AuthorizingQueryProvider(IQueryProvider provider, IEntityQueryAuthorizer entityQueryAuthorizer)
        {
            this.provider = provider;
            asyncProvider = provider as IDbAsyncQueryProvider;

            QueryAuthorizer = entityQueryAuthorizer;
        }
        public Task <TResult> ExecuteAsync <TResult>(Expression expression, CancellationToken cancellationToken)
        {
            IDbAsyncQueryProvider asyncProvider = inner as IDbAsyncQueryProvider;

            if (asyncProvider == null)
            {
                throw new InvalidOperationException("The source IQueryProvider doesn't implement IDbAsyncQueryProvider.");
            }
            var decompiled = DecompileExpressionVisitor.Decompile(expression);

            return(asyncProvider.ExecuteAsync <TResult>(decompiled, cancellationToken));
        }
Exemplo n.º 3
0
 /// <summary>
 ///     Asynchronously executes the strongly-typed query represented by a specified expression tree.
 /// </summary>
 /// <returns> A Task containing the value that results from executing the specified query. </returns>
 /// <param name="expression"> An expression tree that represents a LINQ query. </param>
 /// <typeparam name="TResult"> The type of the value that results from executing the query. </typeparam>
 /// <param name="cancellationToken"> The token to monitor for cancellation requests. </param>
 public static Task <TResult> ExecuteAsync <TResult>(this IDbAsyncQueryProvider provider, Expression expression)
 {
     return(provider.ExecuteAsync <TResult>(expression, CancellationToken.None));
 }
        /// <summary>Constructor.</summary>
        /// <param name="originalProvider">The original provider.</param>
#if NET45
        public QueryInterceptorProvider(IDbAsyncQueryProvider originalProvider)
Exemplo n.º 5
0
 public AsyncQueryable(IQueryable <T> queryable)
 {
     this.queryable            = queryable;
     this.dbAsyncQueryProvider = new DbAsyncQueryProvider <T>(queryable.Provider);
     this.dbAsyncEnumerator    = new DbAsyncEnumerator <T>(queryable.GetEnumerator());
 }