Exemplo n.º 1
0
        public virtual Task <TResult> ExecuteAsync <TResult>(Expression query, CancellationToken cancellationToken)
        {
            Check.NotNull(query, nameof(query));

            var queryContext = _queryContextFactory.Create();

            queryContext.CancellationToken = cancellationToken;

            query = ExtractParameters(query, queryContext);

            try
            {
                return(CompileAsyncQuery <TResult>(query)(queryContext).First(cancellationToken));
            }
            catch (Exception exception)
            {
                _logger
                .LogError(
                    CoreLoggingEventId.DatabaseError,
                    () => new DatabaseErrorLogState(_contextType),
                    exception,
                    e => CoreStrings.LogExceptionDuringQueryIteration(Environment.NewLine, e));

                throw;
            }
        }
Exemplo n.º 2
0
        /// <summary>
        ///     This API supports the Entity Framework Core infrastructure and is not intended to be used
        ///     directly from your code. This API may change or be removed in future releases.
        /// </summary>
        public virtual IAsyncEnumerable <TResult> ExecuteAsync <TResult>(Expression query)
        {
            Check.NotNull(query, nameof(query));

            var queryContext = _queryContextFactory.Create();

            query = ExtractParameters(query, queryContext);

            return(CompileAsyncQuery <TResult>(query)(queryContext));
        }
Exemplo n.º 3
0
        public virtual Task <TResult> ExecuteAsync <TResult>(Expression query, CancellationToken cancellationToken)
        {
            Check.NotNull(query, nameof(query));

            var queryContext = _contextFactory.Create();

            queryContext.CancellationToken = cancellationToken;

            query = Preprocess(query, queryContext);

            return(CompileAsyncQuery <TResult>(query)(queryContext)
                   .First(cancellationToken));
        }