/// <summary>
        /// Creates an instance of <see cref="IAsyncRemoteStreamQueryable{T}" /> that utilizes the async stream provider specified.
        /// </summary>
        /// <typeparam name="T">Element type of the <see cref="IAsyncRemoteStreamQueryable{T}"/>.</typeparam>
        /// <typeparam name="TSource">Data type served by the data provider.</typeparam>
        public static IAsyncRemoteStreamQueryable <T> CreateAsyncStreamQueryable <T, TSource>(
            this RemoteQueryableFactory factory,
            Func <RemoteLinq.Expression, CancellationToken, IAsyncEnumerable <TSource?> > dataProvider,
            IAsyncQueryResultMapper <TSource> resultMapper,
            IExpressionToRemoteLinqContext?context = null)
        {
            var queryProvider = new AsyncRemoteStreamProvider <TSource>(dataProvider, resultMapper, context);

            return(new AsyncRemoteStreamQueryable <T>(queryProvider));
        }
Exemplo n.º 2
0
        /// <summary>
        /// Creates an instance of <see cref="IQueryable{T}" /> that utilizes the async stream provider specified.
        /// </summary>
        /// <typeparam name="T">Element type of the <see cref="IQueryable{T}"/>.</typeparam>
        /// <typeparam name="TSource">Data type served by the data provider.</typeparam>
        public static IQueryable <T> CreateQueryable <T, TSource>(this RemoteQueryableFactory factory, Func <Expressions.Expression, CancellationToken, IAsyncEnumerable <TSource> > dataProvider, IQueryResultMapper <TSource> resultMapper, ITypeInfoProvider?typeInfoProvider = null, Func <System.Linq.Expressions.Expression, bool>?canBeEvaluatedLocally = null)
        {
            var queryProvider = new AsyncRemoteStreamProvider <TSource>(dataProvider, typeInfoProvider, canBeEvaluatedLocally, resultMapper);

            return(new Remote.Linq.DynamicQuery.AsyncRemoteStreamQueryable <T>(queryProvider));
        }