mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2026-01-26 21:38:32 +08:00
Support Sqlserver 2012 page
This commit is contained in:
@@ -1082,6 +1082,56 @@ namespace SqlSugar
|
|||||||
InitMapping();
|
InitMapping();
|
||||||
return _ToList<T>();
|
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)
|
public virtual List<T> ToPageList(int pageIndex, int pageSize)
|
||||||
{
|
{
|
||||||
pageIndex = _PageList(pageIndex, pageSize);
|
pageIndex = _PageList(pageIndex, pageSize);
|
||||||
@@ -1508,6 +1558,11 @@ namespace SqlSugar
|
|||||||
return this;
|
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)
|
private int _PageList(int pageIndex, int pageSize)
|
||||||
{
|
{
|
||||||
if (pageIndex == 0)
|
if (pageIndex == 0)
|
||||||
|
|||||||
@@ -477,6 +477,7 @@ namespace SqlSugar
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Get SQL Partial
|
#region Get SQL Partial
|
||||||
|
public string Offset { get; set; }
|
||||||
public virtual string GetSelectValue
|
public virtual string GetSelectValue
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -640,6 +641,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private string GetTableName(string entityName)
|
private string GetTableName(string entityName)
|
||||||
|
|||||||
@@ -155,6 +155,10 @@ namespace SqlSugar
|
|||||||
DataTable ToDataTablePage(int pageIndex, int pageSize, ref int totalNumber,ref int totalPage);
|
DataTable ToDataTablePage(int pageIndex, int pageSize, ref int totalNumber,ref int totalPage);
|
||||||
Task<DataTable> ToDataTablePageAsync(int pageIndex, int pageSize, RefAsync<int> totalNumber);
|
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);
|
List<T> ToPageList(int pageIndex, int pageSize);
|
||||||
Task<List<T>> ToPageListAsync(int pageIndex, int pageSize);
|
Task<List<T>> ToPageListAsync(int pageIndex, int pageSize);
|
||||||
List<T> ToPageList(int pageIndex, int pageSize, ref int totalNumber);
|
List<T> ToPageList(int pageIndex, int pageSize, ref int totalNumber);
|
||||||
|
|||||||
@@ -48,6 +48,10 @@ namespace SqlSugar
|
|||||||
result = ToPageSql2(result, ExternalPageIndex, ExternalPageSize, true);
|
result = ToPageSql2(result, ExternalPageIndex, ExternalPageSize, true);
|
||||||
}
|
}
|
||||||
this.OrderByValue = oldOrderBy;
|
this.OrderByValue = oldOrderBy;
|
||||||
|
if (!string.IsNullOrEmpty(this.Offset))
|
||||||
|
{
|
||||||
|
result += this.Offset;
|
||||||
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user