/// <summary> /// 从 <see cref="IDbQueryable{TSource}"/> 创建 <see cref="DataSet"/> /// </summary> /// <typeparam name="TSource">source 的元素类型</typeparam> /// <param name="source">查询序列</param> /// <returns></returns> public static async Task <DataSet> ToDataSetAsync <TSource>(this IDbQueryable <TSource> source) { return(await source.ExecuteAsync <DataSet>()); }
/// <summary> /// 返回指定序列中满足条件的元素数量 /// </summary> /// <typeparam name="TSource">source 的元素类型</typeparam> /// <param name="source">查询序列</param> /// <param name="predicate">用于测试每个元素是否满足条件的函数</param> /// <returns></returns> public static async Task <int> CountAsync <TSource>(this IDbQueryable <TSource> source, Expression <Func <TSource, bool> > predicate) { IDbQueryable <int> query = source.CreateQuery <int>(DbExpressionType.Count, predicate); return(await query.ExecuteAsync <int>()); }
/// <summary> /// 返回序列中满足指定条件的第一个元素,如果未找到这样的元素,则返回默认值 /// </summary> /// <typeparam name="TSource">source 的元素类型</typeparam> /// <param name="source">查询序列</param> /// <param name="predicate">用于测试每个元素是否满足条件的函数</param> /// <returns></returns> public static async Task <TSource> FirstOrDefaultAsync <TSource>(this IDbQueryable <TSource> source, Expression <Func <TSource, bool> > predicate = null) { IDbQueryable <TSource> query = source.CreateQuery <TSource>(DbExpressionType.FirstOrDefault, predicate); return(await query.ExecuteAsync <TSource>()); }
/// <summary> /// 确定序列是否包含任何元素 /// </summary> /// <typeparam name="TSource">source 的元素类型</typeparam> /// <param name="source">查询序列</param> /// <returns></returns> /// <param name="predicate">用于测试每个元素是否满足条件的函数</param> /// <returns>如果源序列中存在元素通过了指定谓词中的测试,则为 true;否则为 false</returns> public static async Task <bool> AnyAsync <TSource>(this IDbQueryable <TSource> source, Expression <Func <TSource, bool> > predicate) { IDbQueryable <bool> query = source.CreateQuery <bool>(DbExpressionType.Any, predicate); return(await query.ExecuteAsync <bool>()); }