/// <summary> /// 异步的,执行指定表达式树所表示的查询。 /// </summary> /// <typeparam name="TResult">执行查询所生成的值的类型。</typeparam> /// <param name="expression">一个表示的表达式树 LINQ 查询。</param> /// <param name="cancellationToken">取消操作的通知。</param> /// <returns></returns> public async Task <TResult> ExecuteAsync <TResult>(Expression expression, CancellationToken cancellationToken) { if (!ExecuteCache.CanCache(expression)) { return(await entityQueryProvider.ExecuteAsync <TResult>(expression)); } return(await ExecuteCache.TryGet(expression, () => entityQueryProvider.ExecuteAsync <TResult>(expression, cancellationToken))); }