public static IAsyncRemoteQueryable <T> CreateEntityFrameworkCoreAsyncQueryable <T, TSource>( this RemoteQueryableFactory factory, Func <RemoteLinq.Expression, ValueTask <TSource?> > dataProvider, IAsyncQueryResultMapper <TSource> resultMapper, ITypeInfoProvider?typeInfoProvider = null, Func <SystemLinq.Expression, bool>?canBeEvaluatedLocally = null) => CreateEntityFrameworkCoreAsyncQueryable <T, TSource>(factory, dataProvider, resultMapper, GetExpressionToRemoteLinqContext(typeInfoProvider, canBeEvaluatedLocally));
internal AsyncRemoteQueryProvider(Func <Expressions.Expression, CancellationToken, Task <TSource> > asyncDataProvider, ITypeInfoProvider?typeInfoProvider, IAsyncQueryResultMapper <TSource> resultMapper, Func <Expression, bool>?canBeEvaluatedLocally) { _asyncDataProvider = asyncDataProvider.CheckNotNull(nameof(asyncDataProvider)); _resultMapper = resultMapper.CheckNotNull(nameof(resultMapper)); _typeInfoProvider = typeInfoProvider; _canBeEvaluatedLocally = canBeEvaluatedLocally; }
public static IAsyncRemoteQueryable CreateEntityFrameworkCoreAsyncQueryable <TSource>( this RemoteQueryableFactory factory, Type elementType, Func <RemoteLinq.Expression, ValueTask <TSource?> > dataProvider, IAsyncQueryResultMapper <TSource> resultMapper, IExpressionToRemoteLinqContext?context = null) => factory.CreateAsyncQueryable(elementType, dataProvider, resultMapper, GetOrCreateContext(context));
internal AsyncRemoteQueryProvider(Func <Expressions.Expression, Task <TSource> > dataProvider, ITypeInfoProvider typeInfoProvider, IAsyncQueryResultMapper <TSource> resutMapper, Func <Expression, bool> canBeEvaluatedLocally) { _dataProvider = dataProvider ?? throw new ArgumentNullException(nameof(dataProvider)); _resultMapper = resutMapper; _typeInfoProvider = typeInfoProvider; _canBeEvaluatedLocally = canBeEvaluatedLocally; }
public static IAsyncRemoteStreamQueryable <T> CreateEntityFrameworkCoreAsyncStreamQueryable <T>( this RemoteQueryableFactory factory, Func <RemoteLinq.Expression, IAsyncEnumerable <object?> > dataProvider, IAsyncQueryResultMapper <object?>?resultMapper = null, ITypeInfoProvider?typeInfoProvider = null, Func <SystemLinq.Expression, bool>?canBeEvaluatedLocally = null) => CreateEntityFrameworkCoreAsyncStreamQueryable <T>(factory, dataProvider, resultMapper, GetExpressionToRemoteLinqContext(typeInfoProvider, canBeEvaluatedLocally));
/// <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> public static IAsyncRemoteStreamQueryable <T> CreateAsyncStreamQueryable <T>( this RemoteQueryableFactory factory, Func <RemoteLinq.Expression, CancellationToken, IAsyncEnumerable <object?> > dataProvider, IAsyncQueryResultMapper <object>?resultMapper, ITypeInfoProvider?typeInfoProvider, Func <SystemLinq.Expression, bool>?canBeEvaluatedLocally = null) => CreateAsyncStreamQueryable <T>(factory, dataProvider, resultMapper, RemoteQueryable.GetExpressionTranslatorContextOrNull(typeInfoProvider, canBeEvaluatedLocally));
/// <summary> /// Creates an instance of <see cref="IAsyncQueryable{T}" /> that utilizes the async stream provider specified. /// </summary> /// <typeparam name="T">Element type of the <see cref="IAsyncQueryable{T}"/>.</typeparam> public static IAsyncQueryable <T> CreateAsyncQueryable <T>( this RemoteQueryableFactory factory, Func <RemoteLinq.Expression, CancellationToken, IAsyncEnumerable <object?> >?asyncStreamProvider, Func <RemoteLinq.Expression, CancellationToken, ValueTask <object?> >?asyncDataProvider, IAsyncQueryResultMapper <object>?resultMapper = null, IExpressionToRemoteLinqContext?context = null) => CreateAsyncQueryable <T, object>(factory, asyncStreamProvider, asyncDataProvider, resultMapper ?? new AsyncObjectResultCaster(), context);
public static IAsyncRemoteQueryable <T> CreateEntityFrameworkAsyncQueryable <T, TSource>( this RemoteQueryableFactory factory, Func <Expressions.Expression, ValueTask <TSource?> > dataProvider, IAsyncQueryResultMapper <TSource> resultMapper, ITypeInfoProvider?typeInfoProvider = null, Func <System.Linq.Expressions.Expression, bool>?canBeEvaluatedLocally = null) => factory.CreateAsyncQueryable <T, TSource>(dataProvider, resultMapper, typeInfoProvider, canBeEvaluatedLocally);
public static IAsyncRemoteQueryable CreateEntityFrameworkAsyncQueryable( this RemoteQueryableFactory factory, Type elementType, Func <Expressions.Expression, ValueTask <object?> > dataProvider, ITypeInfoProvider?typeInfoProvider = null, IAsyncQueryResultMapper <object>?resultMapper = null, Func <System.Linq.Expressions.Expression, bool>?canBeEvaluatedLocally = null) => factory.CreateAsyncQueryable(elementType, dataProvider, typeInfoProvider, resultMapper, canBeEvaluatedLocally);
public static IAsyncRemoteQueryable CreateEntityFrameworkCoreAsyncQueryable( this RemoteQueryableFactory factory, Type elementType, Func <RemoteLinq.Expression, ValueTask <object?> > dataProvider, ITypeInfoProvider?typeInfoProvider = null, IAsyncQueryResultMapper <object>?resultMapper = null, Func <SystemLinq.Expression, bool>?canBeEvaluatedLocally = null) => CreateEntityFrameworkCoreAsyncQueryable(factory, elementType, dataProvider, resultMapper, GetExpressionToRemoteLinqContext(typeInfoProvider, canBeEvaluatedLocally));
public AsyncRemoteQueryProvider( Func <RemoteLinq.Expression, CancellationToken, ValueTask <TSource?> > asyncDataProvider, IAsyncQueryResultMapper <TSource> resultMapper, IExpressionToRemoteLinqContext?context) { _asyncDataProvider = asyncDataProvider.CheckNotNull(nameof(asyncDataProvider)); _resultMapper = resultMapper.CheckNotNull(nameof(resultMapper)); _context = context; }
public AsyncRemoteStreamProvider( Func <Expressions.Expression, CancellationToken, IAsyncEnumerable <TSource?> > dataProvider, IAsyncQueryResultMapper <TSource> resultMapper, IExpressionToRemoteLinqContext?context) { _dataProvider = dataProvider.CheckNotNull(nameof(dataProvider)); _resultMapper = resultMapper.CheckNotNull(nameof(resultMapper)); _context = context; }
/// <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)); }
internal AsyncRemoteQueryProvider(Func <Expressions.Expression, Task <TSource> > dataProvider, ITypeResolver typeResolver, IAsyncQueryResultMapper <TSource> resutMapper, Func <Expression, bool> canBeEvaluatedLocally) { if (ReferenceEquals(null, dataProvider)) { throw new ArgumentNullException(nameof(dataProvider)); } _dataProvider = dataProvider; _resultMapper = resutMapper; _typeResolver = typeResolver; _canBeEvaluatedLocally = canBeEvaluatedLocally; }
/// <summary> /// Creates an instance of <see cref="IAsyncQueryable{T}" /> that utilizes the async stream provider specified. /// </summary> /// <typeparam name="T">Element type of the <see cref="IAsyncQueryable{T}"/>.</typeparam> /// <typeparam name="TSource">Data type served by the data provider.</typeparam> public static IAsyncQueryable <T> CreateAsyncQueryable <T, TSource>( this RemoteQueryableFactory factory, Func <RemoteLinq.Expression, IAsyncEnumerable <TSource?> >?asyncStreamProvider, Func <RemoteLinq.Expression, ValueTask <TSource?> >?asyncDataProvider, IAsyncQueryResultMapper <TSource> resultMapper, IExpressionToRemoteLinqContext?context = null) => CreateAsyncQueryable <T, TSource>( factory, asyncStreamProvider is null ? null : (RemoteLinq.Expression exp, CancellationToken _) => asyncStreamProvider(exp), asyncDataProvider is null ? null : (RemoteLinq.Expression exp, CancellationToken _) => asyncDataProvider(exp), resultMapper, context);
public RemoteLinqAsyncQueryProvider( Func <RemoteLinq.Expression, CancellationToken, IAsyncEnumerable <TSource?> >?asyncStreamProvider, Func <RemoteLinq.Expression, CancellationToken, ValueTask <TSource?> >?asyncDataProvider, IAsyncQueryResultMapper <TSource> resultMapper, IExpressionToRemoteLinqContext?context = null) { if (asyncStreamProvider is null && asyncDataProvider is null) { throw new ArgumentNullException( $"{nameof(asyncStreamProvider)}, {nameof(asyncDataProvider)}", $"At least one of '{nameof(asyncStreamProvider)}' and '{nameof(asyncDataProvider)}' must not be null."); } _asyncStreamProvider = asyncStreamProvider; _asyncDataProvider = asyncDataProvider; _resultMapper = resultMapper.CheckNotNull(nameof(resultMapper)); _context = context; }
/// <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> CreateAsyncQueryable <T, TSource>(this RemoteQueryableFactory factory, Func <Expressions.Expression, Task <TSource> > dataProvider, IAsyncQueryResultMapper <TSource> resultMapper, ITypeInfoProvider typeInfoProvider = null, Func <System.Linq.Expressions.Expression, bool> canBeEvaluatedLocally = null) { var queryProvider = new AsyncRemoteQueryProvider <TSource>(dataProvider, typeInfoProvider, resultMapper, canBeEvaluatedLocally); return(new Remote.Linq.DynamicQuery.AsyncRemoteQueryable <T>(queryProvider)); }
/// <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> CreateAsyncQueryable <T>(this RemoteQueryableFactory factory, Func <Expressions.Expression, Task <object> > dataProvider, ITypeInfoProvider typeInfoProvider = null, IAsyncQueryResultMapper <object> resultMapper = null, Func <System.Linq.Expressions.Expression, bool> canBeEvaluatedLocally = null) { if (resultMapper is null) { resultMapper = new AsyncObjectResultCaster(); } return(factory.CreateAsyncQueryable <T, object>(dataProvider, resultMapper, typeInfoProvider, canBeEvaluatedLocally)); }
public static IQueryable <T> CreateEntityFrameworkCoreAsyncQueryable <T, TSource>(this RemoteQueryableFactory factory, Func <Expressions.Expression, Task <TSource> > dataProvider, IAsyncQueryResultMapper <TSource> resultMapper, ITypeInfoProvider typeInfoProvider = null, Func <System.Linq.Expressions.Expression, bool> canBeEvaluatedLocally = null) => factory.CreateQueryable <T, TSource>(dataProvider, resultMapper, typeInfoProvider, canBeEvaluatedLocally.And(ExpressionEvaluator.CanBeEvaluated));
/// <summary> /// Creates an instance of <see cref="IQueryable" /> that utilizes the data provider specified /// </summary> public static IQueryable CreateAsyncQueryable(this RemoteQueryableFactory factory, Type elementType, Func <Expressions.Expression, Task <object> > dataProvider, ITypeResolver typeResolver = null, IAsyncQueryResultMapper <object> resultMapper = null, Func <System.Linq.Expressions.Expression, bool> canBeEvaluatedLocally = null) { if (ReferenceEquals(null, resultMapper)) { resultMapper = new AsyncObjectResultCaster(); } return(factory.CreateAsyncQueryable <object>(elementType, dataProvider, resultMapper, typeResolver, canBeEvaluatedLocally)); }
public static IQueryable CreateEntityFrameworkCoreAsyncQueryable(this RemoteQueryableFactory factory, Type elementType, Func <Expressions.Expression, Task <object> > dataProvider, ITypeInfoProvider typeInfoProvider = null, IAsyncQueryResultMapper <object> resultMapper = null, Func <System.Linq.Expressions.Expression, bool> canBeEvaluatedLocally = null) => factory.CreateQueryable(elementType, dataProvider, typeInfoProvider, resultMapper, canBeEvaluatedLocally.And(ExpressionEvaluator.CanBeEvaluated));
public static IRemoteQueryable CreateEntityFrameworkCoreQueryable(this RemoteQueryableFactory factory, Type elementType, Func <RemoteLinq.Expression, Task <object> > dataProvider, ITypeInfoProvider?typeInfoProvider = null, IAsyncQueryResultMapper <object>?resultMapper = null, Func <SystemLinq.Expression, bool>?canBeEvaluatedLocally = null) => throw new NotSupportedException(TaskBasedMethodObsolete);
public static IAsyncRemoteQueryable <T> CreateEntityFrameworkCoreQueryable <T, TSource>(this RemoteQueryableFactory factory, Func <RemoteLinq.Expression, ValueTask <TSource> > dataProvider, IAsyncQueryResultMapper <TSource> resultMapper, ITypeInfoProvider?typeInfoProvider = null, Func <SystemLinq.Expression, bool>?canBeEvaluatedLocally = null) => throw new NotSupportedException(TaskBasedMethodObsolete);
public static IQueryable <T> CreateEntityFrameworkAsyncQueryable <T>(this RemoteQueryableFactory factory, Func <Expressions.Expression, Task <object> > dataProvider, ITypeInfoProvider typeInfoProvider = null, IAsyncQueryResultMapper <object> resultMapper = null, Func <System.Linq.Expressions.Expression, bool> canBeEvaluatedLocally = null) => factory.CreateQueryable <T>(dataProvider, typeInfoProvider, resultMapper, canBeEvaluatedLocally);
public static IAsyncRemoteStreamQueryable <T> CreateEntityFrameworkCoreAsyncStreamQueryable <T, TSource>( this RemoteQueryableFactory factory, Func <RemoteLinq.Expression, IAsyncEnumerable <TSource?> > dataProvider, IAsyncQueryResultMapper <TSource> resultMapper, IExpressionToRemoteLinqContext?context = null) => factory.CreateAsyncStreamQueryable <T, TSource>(dataProvider, resultMapper, GetOrCreateContext(context));
public static IAsyncRemoteQueryable <T> CreateEntityFrameworkCoreAsyncQueryable <T>( this RemoteQueryableFactory factory, Func <RemoteLinq.Expression, ValueTask <object?> > dataProvider, IAsyncQueryResultMapper <object>?resultMapper = null, IExpressionToRemoteLinqContext?context = null) => factory.CreateAsyncQueryable <T>(dataProvider, resultMapper, GetOrCreateContext(context));
public static IQueryable CreateEntityFrameworkAsyncQueryable <TSource>(this RemoteQueryableFactory factory, Type elementType, Func <Expressions.Expression, Task <TSource> > dataProvider, IAsyncQueryResultMapper <TSource> resultMapper, ITypeResolver typeResolver = null, Func <System.Linq.Expressions.Expression, bool> canBeEvaluatedLocally = null) => factory.CreateAsyncQueryable <TSource>(elementType, dataProvider, resultMapper, typeResolver, canBeEvaluatedLocally);
public static IQueryable <T> CreateAsyncQueryable <T, TSource>(this RemoteQueryableFactory factory, Func <Expressions.Expression, CancellationToken, Task <TSource> > dataProvider, IAsyncQueryResultMapper <TSource> resultMapper, ITypeInfoProvider typeInfoProvider = null, Func <System.Linq.Expressions.Expression, bool> canBeEvaluatedLocally = null) => factory.CreateQueryable <T, TSource>(dataProvider, resultMapper, typeInfoProvider, canBeEvaluatedLocally);
public static IRemoteQueryable CreateQueryable <TSource>(this RemoteQueryableFactory factory, Type elementType, Func <RemoteLinq.Expression, CancellationToken, Task <TSource> > dataProvider, IAsyncQueryResultMapper <TSource> resultMapper, ITypeInfoProvider?typeInfoProvider = null, Func <SystemLinq.Expression, bool>?canBeEvaluatedLocally = null) => throw new NotSupportedException(TaskBasedMethodObsolete);
public static IAsyncRemoteQueryable <T> CreateQueryable <T>(this RemoteQueryableFactory factory, Func <RemoteLinq.Expression, CancellationToken, ValueTask <object> > dataProvider, ITypeInfoProvider?typeInfoProvider = null, IAsyncQueryResultMapper <object>?resultMapper = null, Func <SystemLinq.Expression, bool>?canBeEvaluatedLocally = null) => throw new NotSupportedException(TaskBasedMethodObsolete);