/// <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);
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);
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));
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; }
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));
/// <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));
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; }
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));
/// <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; }
/// <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)); }
/// <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)); }
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);
/// <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);
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));
/// <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);
/// <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)); }
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);
/// <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)); }
/// <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)); }
/// <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)); }