Exemple #1
0
 /// <summary>
 /// Creates an instance of <see cref="IRemoteQueryable" /> that utilizes the data provider specified.
 /// </summary>
 public static IRemoteQueryable CreateQueryable(
     this RemoteQueryableFactory factory,
     Type elementType,
     Func <RemoteLinq.Expression, object?> dataProvider,
     IQueryResultMapper <object>?resultMapper = null,
     IExpressionToRemoteLinqContext?context   = null)
 => CreateQueryable <object>(factory, elementType, dataProvider, resultMapper ?? new ObjectResultCaster(), context);
Exemple #2
0
 internal RemoteQueryProvider(Func <Expressions.Expression, TSource> dataProvider, ITypeInfoProvider typeInfoProvider, IQueryResultMapper <TSource> resultMapper, Func <Expression, bool> canBeEvaluatedLocally)
 {
     _dataProvider          = dataProvider ?? throw new ArgumentNullException(nameof(dataProvider));
     _resultMapper          = resultMapper;
     _typeInfoProvider      = typeInfoProvider;
     _canBeEvaluatedLocally = canBeEvaluatedLocally;
 }
 public static IRemoteQueryable <T> CreateEntityFrameworkQueryable <T, TSource>(
     this RemoteQueryableFactory factory,
     Func <Expressions.Expression, TSource?> dataProvider,
     IQueryResultMapper <TSource> resultMapper,
     ITypeInfoProvider?typeInfoProvider = null,
     Func <System.Linq.Expressions.Expression, bool>?canBeEvaluatedLocally = null)
 => factory.CreateQueryable <T, TSource>(dataProvider, resultMapper, typeInfoProvider, canBeEvaluatedLocally);
Exemple #4
0
 public static IRemoteQueryable <T> CreateEntityFrameworkCoreQueryable <T>(
     this RemoteQueryableFactory factory,
     Func <RemoteLinq.Expression, object> dataProvider,
     ITypeInfoProvider?typeInfoProvider       = null,
     IQueryResultMapper <object>?resultMapper = null,
     Func <SystemLinq.Expression, bool>?canBeEvaluatedLocally = null)
 => CreateEntityFrameworkCoreQueryable <T>(factory, dataProvider, resultMapper, GetExpressionToRemoteLinqContext(typeInfoProvider, canBeEvaluatedLocally));
Exemple #5
0
 internal RemoteQueryProvider(Func <Expressions.Expression, TSource> dataProvider, ITypeInfoProvider?typeInfoProvider, IQueryResultMapper <TSource> resultMapper, Func <Expression, bool>?canBeEvaluatedLocally)
 {
     _dataProvider          = dataProvider.CheckNotNull(nameof(dataProvider));
     _resultMapper          = resultMapper.CheckNotNull(nameof(resultMapper));
     _typeInfoProvider      = typeInfoProvider;
     _canBeEvaluatedLocally = canBeEvaluatedLocally;
 }
Exemple #6
0
 public static IRemoteQueryable CreateEntityFrameworkCoreQueryable <TSource>(
     this RemoteQueryableFactory factory,
     Type elementType,
     Func <RemoteLinq.Expression, TSource> dataProvider,
     IQueryResultMapper <TSource> resultMapper,
     IExpressionToRemoteLinqContext?context = null)
 => factory.CreateQueryable(elementType, dataProvider, resultMapper, GetOrCreateContext(context));
Exemple #7
0
 /// <summary>
 /// Creates an instance of <see cref="IRemoteQueryable{T}" /> that utilizes the data provider specified.
 /// </summary>
 /// <typeparam name="T">Element type of the <see cref="IRemoteQueryable{T}"/>.</typeparam>
 /// <typeparam name="TSource">Data type served by the data provider.</typeparam>
 public static IRemoteQueryable <T> CreateQueryable <T, TSource>(
     this RemoteQueryableFactory factory,
     Func <RemoteLinq.Expression, TSource?> dataProvider,
     IQueryResultMapper <TSource> resultMapper,
     ITypeInfoProvider?typeInfoProvider,
     Func <SystemLinq.Expression, bool>?canBeEvaluatedLocally = null)
 => CreateQueryable <T, TSource>(factory, dataProvider, resultMapper, RemoteQueryable.GetExpressionTranslatorContextOrNull(typeInfoProvider, canBeEvaluatedLocally));
Exemple #8
0
 public AsyncRemoteStreamProvider(Func <Expressions.Expression, CancellationToken, IAsyncEnumerable <TSource> > dataProvider, ITypeInfoProvider?typeInfoProvider, Func <Expression, bool>?canBeEvaluatedLocally, IQueryResultMapper <TSource> resultMapper)
 {
     _dataProvider          = dataProvider.CheckNotNull(nameof(dataProvider));
     _resultMapper          = resultMapper.CheckNotNull(nameof(resultMapper));
     _typeInfoProvider      = typeInfoProvider;
     _canBeEvaluatedLocally = canBeEvaluatedLocally;
 }
Exemple #9
0
 public static IRemoteQueryable CreateEntityFrameworkCoreQueryable <TSource>(
     this RemoteQueryableFactory factory,
     Type elementType,
     Func <RemoteLinq.Expression, TSource> dataProvider,
     IQueryResultMapper <TSource> resultMapper,
     ITypeInfoProvider?typeInfoProvider = null,
     Func <SystemLinq.Expression, bool>?canBeEvaluatedLocally = null)
 => CreateEntityFrameworkCoreQueryable(factory, elementType, dataProvider, resultMapper, GetExpressionToRemoteLinqContext(typeInfoProvider, canBeEvaluatedLocally));
Exemple #10
0
 /// <summary>
 /// Creates an instance of <see cref="IRemoteQueryable" /> that utilizes the data provider specified.
 /// </summary>
 public static IRemoteQueryable CreateQueryable(
     this RemoteQueryableFactory factory,
     Type elementType,
     Func <RemoteLinq.Expression, object?> dataProvider,
     ITypeInfoProvider?typeInfoProvider,
     IQueryResultMapper <object>?resultMapper = null,
     Func <SystemLinq.Expression, bool>?canBeEvaluatedLocally = null)
 => CreateQueryable(factory, elementType, dataProvider, resultMapper, RemoteQueryable.GetExpressionTranslatorContextOrNull(typeInfoProvider, canBeEvaluatedLocally));
 public static IRemoteQueryable CreateEntityFrameworkQueryable(
     this RemoteQueryableFactory factory,
     Type elementType,
     Func <Expressions.Expression, object?> dataProvider,
     ITypeInfoProvider?typeInfoProvider       = null,
     IQueryResultMapper <object>?resultMapper = null,
     Func <System.Linq.Expressions.Expression, bool>?canBeEvaluatedLocally = null)
 => factory.CreateQueryable(elementType, dataProvider, typeInfoProvider, resultMapper, canBeEvaluatedLocally);
 public RemoteQueryProvider(
     Func <Expressions.Expression, TSource?> dataProvider,
     IQueryResultMapper <TSource> resultMapper,
     IExpressionToRemoteLinqContext?context)
 {
     _dataProvider = dataProvider.CheckNotNull(nameof(dataProvider));
     _resultMapper = resultMapper.CheckNotNull(nameof(resultMapper));
     _context      = context;
 }
Exemple #13
0
        /// <summary>
        /// Creates an instance of <see cref="IRemoteQueryable{T}" /> that utilizes the data provider specified.
        /// </summary>
        /// <typeparam name="T">Element type of the <see cref="IRemoteQueryable{T}"/>.</typeparam>
        /// <typeparam name="TSource">Data type served by the data provider.</typeparam>
        public static IRemoteQueryable <T> CreateQueryable <T, TSource>(
            this RemoteQueryableFactory factory,
            Func <RemoteLinq.Expression, TSource?> dataProvider,
            IQueryResultMapper <TSource> resultMapper,
            IExpressionToRemoteLinqContext?context = null)
        {
            var queryProvider = new RemoteQueryProvider <TSource>(dataProvider, resultMapper, context);

            return(new RemoteQueryable <T>(queryProvider));
        }
Exemple #14
0
        /// <summary>
        /// Creates an instance of <see cref="IRemoteQueryable" /> that utilizes the data provider specified.
        /// </summary>
        /// <typeparam name="TSource">Data type served by the data provider.</typeparam>
        public static IRemoteQueryable CreateQueryable <TSource>(
            this RemoteQueryableFactory factory,
            Type elementType,
            Func <RemoteLinq.Expression, TSource?> dataProvider,
            IQueryResultMapper <TSource> resultMapper,
            IExpressionToRemoteLinqContext?context = null)
        {
            var queryProvider = new RemoteQueryProvider <TSource>(dataProvider, resultMapper, context);

            return(new Remote.Linq.DynamicQuery.RemoteQueryable(elementType, queryProvider));
        }
Exemple #15
0
        internal RemoteQueryProvider(Func <Expressions.Expression, TSource> dataProvider, ITypeResolver typeResolver, IQueryResultMapper <TSource> resultMapper, Func <Expression, bool> canBeEvaluatedLocally)
        {
            if (ReferenceEquals(null, dataProvider))
            {
                throw new ArgumentNullException(nameof(dataProvider));
            }

            _dataProvider          = dataProvider;
            _resultMapper          = resultMapper;
            _typeResolver          = typeResolver;
            _canBeEvaluatedLocally = canBeEvaluatedLocally;
        }
 /// <summary>
 /// Creates an instance of <see cref="IQueryable" /> that utilizes the data provider specified.
 /// </summary>
 public static IQueryable CreateQueryable(this RemoteQueryableFactory factory, Type elementType, Func <Expressions.Expression, object> dataProvider, ITypeInfoProvider typeInfoProvider = null, IQueryResultMapper <object> resultMapper = null, Func <System.Linq.Expressions.Expression, bool> canBeEvaluatedLocally = null)
 => factory.CreateQueryable <object>(elementType, dataProvider, resultMapper ?? new ObjectResultCaster(), typeInfoProvider, canBeEvaluatedLocally);
 public static IQueryable <T> Create <T, TSource>(Func <Expressions.Expression, TSource> dataProvider, IQueryResultMapper <TSource> resultMapper, ITypeInfoProvider typeInfoProvider = null, Func <System.Linq.Expressions.Expression, bool> canBeEvaluatedLocally = null)
 => Factory.CreateQueryable <T, TSource>(dataProvider, resultMapper, typeInfoProvider, canBeEvaluatedLocally);
Exemple #18
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, IAsyncEnumerable <TSource> > dataProvider, IQueryResultMapper <TSource> resultMapper, ITypeInfoProvider?typeInfoProvider = null, Func <System.Linq.Expressions.Expression, bool>?canBeEvaluatedLocally = null)
 => CreateQueryable <T, TSource>(factory, (Expressions.Expression exp, CancellationToken _) => dataProvider(exp), resultMapper, typeInfoProvider, canBeEvaluatedLocally);
Exemple #19
0
 public static IRemoteQueryable <T> CreateEntityFrameworkCoreQueryable <T>(
     this RemoteQueryableFactory factory,
     Func <RemoteLinq.Expression, object> dataProvider,
     IQueryResultMapper <object>?resultMapper = null,
     IExpressionToRemoteLinqContext?context   = null)
 => factory.CreateQueryable <T>(dataProvider, resultMapper, GetOrCreateContext(context));
 public static IQueryable CreateEntityFrameworkCoreQueryable <TSource>(this RemoteQueryableFactory factory, Type elementType, Func <Expressions.Expression, TSource> dataProvider, IQueryResultMapper <TSource> resultMapper, ITypeInfoProvider typeInfoProvider = null, Func <System.Linq.Expressions.Expression, bool> canBeEvaluatedLocally = null)
 => factory.CreateQueryable <TSource>(elementType, dataProvider, resultMapper, typeInfoProvider, canBeEvaluatedLocally.And(ExpressionEvaluator.CanBeEvaluated));
Exemple #21
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>
 public static IQueryable <T> CreateQueryable <T>(this RemoteQueryableFactory factory, Func <Expressions.Expression, CancellationToken, IAsyncEnumerable <object?> > dataProvider, IQueryResultMapper <object?>?resultMapper = null, ITypeInfoProvider?typeInfoProvider = null, Func <System.Linq.Expressions.Expression, bool>?canBeEvaluatedLocally = null)
 => CreateQueryable <T, object?>(factory, dataProvider, resultMapper ?? new ObjectResultCaster(), typeInfoProvider, canBeEvaluatedLocally);
Exemple #22
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));
        }
Exemple #23
0
 public static IQueryable <T> CreateEntityFrameworkCoreQueryable <T>(this RemoteQueryableFactory factory, Func <Expressions.Expression, IAsyncEnumerable <object?> > dataProvider, IQueryResultMapper <object?>?resultMapper = null, ITypeInfoProvider?typeInfoProvider = null, Func <System.Linq.Expressions.Expression, bool>?canBeEvaluatedLocally = null)
 => factory.CreateQueryable <T>(dataProvider, typeInfoProvider, resultMapper, canBeEvaluatedLocally.And(ExpressionEvaluator.CanBeEvaluated));
 public static IQueryable <T> CreateEntityFrameworkQueryable <T>(this RemoteQueryableFactory factory, Func <Expressions.Expression, object> dataProvider, ITypeResolver typeResolver = null, IQueryResultMapper <object> resultMapper = null, Func <System.Linq.Expressions.Expression, bool> canBeEvaluatedLocally = null)
 => factory.CreateQueryable <T>(dataProvider, typeResolver, resultMapper, canBeEvaluatedLocally);
 public static IQueryable Create(Type elementType, Func <Expressions.Expression, object> dataProvider, ITypeInfoProvider typeInfoProvider = null, IQueryResultMapper <object> resultMapper = null, Func <System.Linq.Expressions.Expression, bool> canBeEvaluatedLocally = null)
 => Factory.CreateQueryable(elementType, dataProvider, typeInfoProvider, resultMapper, canBeEvaluatedLocally);
Exemple #26
0
        /// <summary>
        /// Creates an instance of <see cref="IQueryable{T}" /> that utilizes the data provider specified.
        /// </summary>
        /// <typeparam name="T">Element type of the <see cref="IQueryable{T}"/>.</typeparam>
        public static IQueryable <T> CreateQueryable <T>(this RemoteQueryableFactory factory, Func <Expressions.Expression, object> dataProvider, ITypeInfoProvider typeInfoProvider = null, IQueryResultMapper <object> resultMapper = null, Func <System.Linq.Expressions.Expression, bool> canBeEvaluatedLocally = null)
        {
            if (resultMapper is null)
            {
                resultMapper = new ObjectResultCaster();
            }

            return(factory.CreateQueryable <T, object>(dataProvider, resultMapper ?? new ObjectResultCaster(), typeInfoProvider, canBeEvaluatedLocally));
        }
Exemple #27
0
        /// <summary>
        /// Creates an instance of <see cref="IQueryable{T}" /> that utilizes the data 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, TSource> dataProvider, IQueryResultMapper <TSource> resultMapper, ITypeInfoProvider typeInfoProvider = null, Func <System.Linq.Expressions.Expression, bool> canBeEvaluatedLocally = null)
        {
            var queryProvider = new RemoteQueryProvider <TSource>(dataProvider, typeInfoProvider, resultMapper, canBeEvaluatedLocally);

            return(new Remote.Linq.DynamicQuery.RemoteQueryable <T>(queryProvider));
        }
Exemple #28
0
        /// <summary>
        /// Creates an instance of <see cref="IQueryable" /> that utilizes the data provider specified
        /// </summary>
        public static IQueryable CreateQueryable(this RemoteQueryableFactory factory, Type elementType, Func <Expressions.Expression, object> dataProvider, ITypeResolver typeResolver = null, IQueryResultMapper <object> resultMapper = null, Func <System.Linq.Expressions.Expression, bool> canBeEvaluatedLocally = null)
        {
            if (ReferenceEquals(null, resultMapper))
            {
                resultMapper = new ObjectResultCaster();
            }

            return(factory.CreateQueryable <object>(elementType, dataProvider, resultMapper, typeResolver, canBeEvaluatedLocally));
        }