/// <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" /> that utilizes the data provider specified. /// </summary> /// <typeparam name="TSource">Data type served by the data provider.</typeparam> public static IQueryable CreateQueryable <TSource>(this RemoteQueryableFactory factory, Type elementType, Func <Expressions.Expression, CancellationToken, 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.RemoteQueryable(elementType, queryProvider)); }