🚀补充ISelectGrouping的分页模型分页方法

This commit is contained in:
KaneLeung 2021-03-30 11:45:59 +08:00
parent 0002cec8b4
commit f2a22aa895
No known key found for this signature in database
GPG Key ID: 3DDA742DAF7CE8AF
3 changed files with 24 additions and 1 deletions

View File

@ -2614,6 +2614,13 @@
<param name="pageSize">每页多少</param> <param name="pageSize">每页多少</param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:FreeSql.ISelectGrouping`2.Page(FreeSql.Internal.Model.BasePagingInfo)">
<summary>
分页
</summary>
<param name="pagingInfo">分页信息</param>
<returns></returns>
</member>
<member name="M:FreeSql.ISelectGrouping`2.Count"> <member name="M:FreeSql.ISelectGrouping`2.Count">
<summary> <summary>
查询的记录数量 查询的记录数量

View File

@ -1,4 +1,5 @@
using System; using FreeSql.Internal.Model;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq.Expressions; using System.Linq.Expressions;
using System.Text; using System.Text;
@ -101,6 +102,13 @@ namespace FreeSql
/// <returns></returns> /// <returns></returns>
ISelectGrouping<TKey, TValue> Page(int pageNumber, int pageSize); ISelectGrouping<TKey, TValue> Page(int pageNumber, int pageSize);
/// <summary>
/// 分页
/// </summary>
/// <param name="pagingInfo">分页信息</param>
/// <returns></returns>
ISelectGrouping<TKey, TValue> Page(BasePagingInfo pagingInfo);
/// <summary> /// <summary>
/// 查询的记录数量 /// 查询的记录数量
/// </summary> /// </summary>

View File

@ -201,6 +201,14 @@ namespace FreeSql.Internal.CommonProvider
return this; return this;
} }
public ISelectGrouping<TKey, TValue> Page(BasePagingInfo pagingInfo)
{
pagingInfo.Count = this.Count();
_groupBySkip = Math.Max(0, pagingInfo.PageNumber - 1) * pagingInfo.PageSize;
_groupByLimit = pagingInfo.PageSize;
return this;
}
public long Count() => _select._cancel?.Invoke() == true ? 0 : long.TryParse(string.Concat(_orm.Ado.ExecuteScalar(_select._connection, _select._transaction, CommandType.Text, $"select count(1) from ({this.ToSql($"1{_comonExp._common.FieldAsAlias("as1")}")}) fta", _select._commandTimeout, _select._params.ToArray())), out var trylng) ? trylng : default(long); public long Count() => _select._cancel?.Invoke() == true ? 0 : long.TryParse(string.Concat(_orm.Ado.ExecuteScalar(_select._connection, _select._transaction, CommandType.Text, $"select count(1) from ({this.ToSql($"1{_comonExp._common.FieldAsAlias("as1")}")}) fta", _select._commandTimeout, _select._params.ToArray())), out var trylng) ? trylng : default(long);
public ISelectGrouping<TKey, TValue> Count(out long count) public ISelectGrouping<TKey, TValue> Count(out long count)
{ {