/// <inheritdoc/> public TResult Execute <TResult>(Expression expression) { ExpressionHelper.CheckExpressionResultType <TResult>(expression); var rlinq = ExpressionHelper.TranslateExpression(expression, _context); var dataRecords = _dataProvider(rlinq); return(_resultMapper.MapResult <TResult>(dataRecords, expression) !); }
public TResult Execute <TResult>(Expression expression) { var rlinq = TranslateExpression(expression, _typeInfoProvider, _canBeEvaluatedLocally); var dataRecords = _dataProvider(rlinq); var result = object.Equals(default(TSource), dataRecords) ? default(TResult) : _resultMapper.MapResult <TResult>(dataRecords, expression); return(result); }
public async IAsyncEnumerable <TResult> ExecuteAsyncRemoteStream <TResult>(Expression expression, [EnumeratorCancellation] CancellationToken cancellation) { cancellation.ThrowIfCancellationRequested(); var rlinq = RemoteQueryProvider <TSource> .TranslateExpression(expression, _typeInfoProvider, _canBeEvaluatedLocally); cancellation.ThrowIfCancellationRequested(); var asyncEnumerable = _dataProvider(rlinq, cancellation); cancellation.ThrowIfCancellationRequested(); await foreach (var resultItem in asyncEnumerable.WithCancellation(cancellation)) { cancellation.ThrowIfCancellationRequested(); var result = _resultMapper.MapResult <TResult>(resultItem, expression); yield return(result); } }