public TResult Execute <TResult>(Expression expression) { var systemlinq = expression.SimplifyIncorporationOfRemoteQueryables(); var remotelinq = systemlinq .ToRemoteLinqExpression() .ReplaceGenericQueryArgumentsByNonGenericArguments(); var queryresult = remotelinq.Execute(null); var result = DynamicResultMapper.MapToType <TResult>(queryresult, null, expression); return(result); }
/// <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, IEnumerable <DynamicObject> > dataProvider, ITypeInfoProvider typeInfoProvider = null, IDynamicObjectMapper mapper = null, Func <System.Linq.Expressions.Expression, bool> canBeEvaluatedLocally = null) { var resultMapper = new DynamicResultMapper(mapper); return(factory.CreateQueryable <T, IEnumerable <DynamicObject> >(dataProvider, resultMapper, typeInfoProvider, canBeEvaluatedLocally)); }