Synchronization code

This commit is contained in:
sunkaixuan 2022-10-13 10:35:50 +08:00
parent fd7cb5beed
commit 2cc36304c5
4 changed files with 22 additions and 5 deletions

View File

@ -252,8 +252,8 @@ namespace SqlSugar
tableName = this.SqlBuilder.GetTranslationTableName(tableName); tableName = this.SqlBuilder.GetTranslationTableName(tableName);
this.Context.Ado.ExecuteCommand(string.Format(this.DropTableSql, tableName)); this.Context.Ado.ExecuteCommand(string.Format(this.DropTableSql, tableName));
return true; return true;
} }
public virtual bool DropTable(string [] tableName) public virtual bool DropTable(string[] tableName)
{ {
foreach (var item in tableName) foreach (var item in tableName)
{ {

View File

@ -1358,14 +1358,14 @@ namespace SqlSugar
var list= this.ToPivotList(columnSelector, rowSelector, dataSelector); var list= this.ToPivotList(columnSelector, rowSelector, dataSelector);
return this.Context.Utilities.SerializeObject(list); return this.Context.Utilities.SerializeObject(list);
} }
public List<T> ToChildList(Expression<Func<T, object>> parentIdExpression, object primaryKeyValue,bool isContainOneself = true) public List<T> ToChildList(Expression<Func<T, object>> parentIdExpression, object primaryKeyValue, bool isContainOneself = true)
{ {
var entity = this.Context.EntityMaintenance.GetEntityInfo<T>(); var entity = this.Context.EntityMaintenance.GetEntityInfo<T>();
var pk = GetTreeKey(entity); var pk = GetTreeKey(entity);
var list = this.ToList(); var list = this.ToList();
return GetChildList(parentIdExpression, pk, list, primaryKeyValue, isContainOneself); return GetChildList(parentIdExpression, pk, list, primaryKeyValue, isContainOneself);
} }
public async Task<List<T>> ToChildListAsync(Expression<Func<T, object>> parentIdExpression, object primaryKeyValue,bool isContainOneself=true) public async Task<List<T>> ToChildListAsync(Expression<Func<T, object>> parentIdExpression, object primaryKeyValue, bool isContainOneself=true)
{ {
var entity = this.Context.EntityMaintenance.GetEntityInfo<T>(); var entity = this.Context.EntityMaintenance.GetEntityInfo<T>();
var pk = GetTreeKey(entity); var pk = GetTreeKey(entity);
@ -1999,6 +1999,7 @@ namespace SqlSugar
{ {
if (this.Context.CurrentConnectionConfig.DbType != DbType.SqlServer) if (this.Context.CurrentConnectionConfig.DbType != DbType.SqlServer)
{ {
this.QueryBuilder.Offset = "true";
return this.ToPageList(pageIndex, pageSize); return this.ToPageList(pageIndex, pageSize);
} }
else else

View File

@ -32,7 +32,7 @@ namespace SqlSugar
bool CreateIndex(string tableName, string [] columnNames, bool isUnique=false); bool CreateIndex(string tableName, string [] columnNames, bool isUnique=false);
bool CreateIndex(string tableName, string[] columnNames, string IndexName, bool isUnique = false); bool CreateIndex(string tableName, string[] columnNames, string IndexName, bool isUnique = false);
bool DropTable(string tableName); bool DropTable(string tableName);
bool DropTable(params string [] tableName); bool DropTable(params string[] tableName);
bool DropTable<T>(); bool DropTable<T>();
bool DropTable<T,T2>(); bool DropTable<T,T2>();
bool DropTable<T, T2,T3>(); bool DropTable<T, T2,T3>();

View File

@ -22,6 +22,10 @@ namespace SqlSugar
} }
public override string ToSqlString() public override string ToSqlString()
{ {
if (this.Offset == "true")
{
return OffsetPage();
}
var oldTake = Take; var oldTake = Take;
var oldSkip = Skip; var oldSkip = Skip;
var isDistinctPage = IsDistinct && (Take > 1 || Skip > 1); var isDistinctPage = IsDistinct && (Take > 1 || Skip > 1);
@ -50,6 +54,18 @@ namespace SqlSugar
} }
return result; return result;
} }
private string OffsetPage()
{
var skip = this.Skip;
var take = this.Take;
this.Skip = null;
this.Take = null;
this.Offset = null;
var pageSql = $"SELECT * FROM ( SELECT PAGETABLE1.*,ROWNUM PAGEINDEX FROM( { this.ToSqlString() }) PAGETABLE1 WHERE ROWNUM<={skip+take}) WHERE PAGEINDEX>={(skip==0?skip:(skip+1))}";
return pageSql;
}
public string _ToSqlString() public string _ToSqlString()
{ {
string oldOrderBy = this.OrderByValue; string oldOrderBy = this.OrderByValue;