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