mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-01 18:59:35 +08:00
Support Sqlserver 2012 page
This commit is contained in:
parent
0e61404e42
commit
807f048454
@ -1082,6 +1082,56 @@ namespace SqlSugar
|
||||
InitMapping();
|
||||
return _ToList<T>();
|
||||
}
|
||||
public List<T> ToOffsetPage(int pageIndex, int pageSize)
|
||||
{
|
||||
if (this.Context.CurrentConnectionConfig.DbType != DbType.SqlServer)
|
||||
{
|
||||
return this.ToPageList(pageIndex, pageSize);
|
||||
}
|
||||
else
|
||||
{
|
||||
_ToOffsetPage(pageIndex, pageSize);
|
||||
return this.ToList();
|
||||
}
|
||||
}
|
||||
public List<T> ToOffsetPage(int pageIndex, int pageSize, ref int totalNumber)
|
||||
{
|
||||
if (this.Context.CurrentConnectionConfig.DbType != DbType.SqlServer)
|
||||
{
|
||||
return this.ToPageList(pageIndex, pageSize, ref totalNumber);
|
||||
}
|
||||
else
|
||||
{
|
||||
totalNumber = this.Clone().Count();
|
||||
_ToOffsetPage(pageIndex, pageSize);
|
||||
return this.Clone().ToList();
|
||||
}
|
||||
}
|
||||
public Task<List<T>> ToOffsetPageAsync(int pageIndex, int pageSize)
|
||||
{
|
||||
if (this.Context.CurrentConnectionConfig.DbType != DbType.SqlServer)
|
||||
{
|
||||
return this.ToPageListAsync(pageIndex, pageSize);
|
||||
}
|
||||
else
|
||||
{
|
||||
_ToOffsetPage(pageIndex, pageSize);
|
||||
return this.ToListAsync();
|
||||
}
|
||||
}
|
||||
public async Task<List<T>> ToOffsetPageAsync(int pageIndex, int pageSize, RefAsync<int> totalNumber)
|
||||
{
|
||||
if (this.Context.CurrentConnectionConfig.DbType != DbType.SqlServer)
|
||||
{
|
||||
return await this.ToPageListAsync(pageIndex, pageSize, totalNumber);
|
||||
}
|
||||
else
|
||||
{
|
||||
totalNumber =await this.Clone().CountAsync();
|
||||
_ToOffsetPage(pageIndex, pageSize);
|
||||
return await this.Clone().ToListAsync();
|
||||
}
|
||||
}
|
||||
public virtual List<T> ToPageList(int pageIndex, int pageSize)
|
||||
{
|
||||
pageIndex = _PageList(pageIndex, pageSize);
|
||||
@ -1508,6 +1558,11 @@ namespace SqlSugar
|
||||
return this;
|
||||
}
|
||||
}
|
||||
private void _ToOffsetPage(int pageIndex, int pageSize)
|
||||
{
|
||||
QueryBuilder.Offset = $" offset {(pageIndex - 1) * pageSize} rows fetch next {pageSize} rows only";
|
||||
}
|
||||
|
||||
private int _PageList(int pageIndex, int pageSize)
|
||||
{
|
||||
if (pageIndex == 0)
|
||||
|
@ -477,6 +477,7 @@ namespace SqlSugar
|
||||
#endregion
|
||||
|
||||
#region Get SQL Partial
|
||||
public string Offset { get; set; }
|
||||
public virtual string GetSelectValue
|
||||
{
|
||||
get
|
||||
@ -640,6 +641,7 @@ namespace SqlSugar
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
private string GetTableName(string entityName)
|
||||
|
@ -155,6 +155,10 @@ namespace SqlSugar
|
||||
DataTable ToDataTablePage(int pageIndex, int pageSize, ref int totalNumber,ref int totalPage);
|
||||
Task<DataTable> ToDataTablePageAsync(int pageIndex, int pageSize, RefAsync<int> totalNumber);
|
||||
|
||||
List<T> ToOffsetPage(int pageIndex,int pageSize);
|
||||
List<T> ToOffsetPage(int pageIndex, int pageSize,ref int totalNumber);
|
||||
Task<List<T>> ToOffsetPageAsync(int pageIndex, int pageSize);
|
||||
Task<List<T>> ToOffsetPageAsync(int pageIndex, int pageSize, RefAsync<int> totalNumber);
|
||||
List<T> ToPageList(int pageIndex, int pageSize);
|
||||
Task<List<T>> ToPageListAsync(int pageIndex, int pageSize);
|
||||
List<T> ToPageList(int pageIndex, int pageSize, ref int totalNumber);
|
||||
|
@ -48,6 +48,10 @@ namespace SqlSugar
|
||||
result = ToPageSql2(result, ExternalPageIndex, ExternalPageSize, true);
|
||||
}
|
||||
this.OrderByValue = oldOrderBy;
|
||||
if (!string.IsNullOrEmpty(this.Offset))
|
||||
{
|
||||
result += this.Offset;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user