/// <summary> /// 条件查询(对象形式) /// </summary> /// <typeparam name="TSource"></typeparam> /// <param name="source"></param> /// <param name="group"></param> /// <returns></returns> public static IQueryable <TSource> QueryByGroupInput <TSource>(this IQueryable <TSource> source, GroupInput?group) where TSource : class, new() { var lambda = ObjFilterConvertHelper.ConvertToExpression <TSource>(group); return(source.Where(lambda)); }
public void ConvertSortTest() { var sorts = new SortInput[] { new SortInput { OrderBy = nameof(userinfo_us.name), Desc = true }, new SortInput { OrderBy = nameof(userinfo_us.age), Desc = true }, new SortInput { OrderBy = nameof(userinfo_us.birthday), Desc = false }, }; var query1 = ObjFilterConvertHelper.OrderBySortInput(_data.AsQueryable(), sorts).ToArray(); var query2 = _data.AsQueryable().OrderByDescending(px => px.name).ThenByDescending(px => px.age).ThenBy(px => px.birthday).ToArray(); for (int i = 0; i < query1.Length; i++) { Assert.AreEqual(query1[i].name, query2[i].name); } }
/// <summary> /// 分页查询 /// </summary> /// <typeparam name="TSource"></typeparam> /// <param name="source"></param> /// <param name="page"></param> /// <returns></returns> public static IQueryable <TSource> QueryByPageInput <TSource>(this IQueryable <TSource> source, PageInput page) where TSource : class, new() { return(ObjFilterConvertHelper.OrderBySortInput(source, page.Sort).Page(page.Index, page.Size)); }
/// <summary> /// 获取集合 /// </summary> /// <param name="arrayKeyValue"></param> /// <returns></returns> public async Task <IEnumerable <TView> > QueryAsync(TQKey[] arrayKeyValue) { var whereExpr = ExpressionHelper.WhereEqualOr <TView, TQKey>(_qkeyMap, arrayKeyValue); return(await ObjFilterConvertHelper.OrderBySortInput(_repository.Select <TView>(), _orderMap).Where(whereExpr).ToArrayAsync()); }