mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-23 22:11:36 +08:00
Performance optimization
This commit is contained in:
parent
33c621fc55
commit
d1d0f976a6
@ -254,6 +254,11 @@ namespace OrmTest
|
||||
parentUser = b
|
||||
})
|
||||
.ToList();
|
||||
|
||||
var sql111= Db.SqlQueryable<Order>("select 1 id ").ToSql().Key;
|
||||
var sql222 = Db.SqlQueryable<Order>("select 1 id ").Where(it=>it.Id==1).ToSql().Key;
|
||||
Check.Exception("select 1 id " != sql111, "unit query error");
|
||||
Check.Exception("SELECT t.* FROM (select 1 id ) t WHERE ( [Id] = @Id0 )" != sql222, "unit query error");
|
||||
}
|
||||
[SugarTable("tree ")]
|
||||
public class Tree2
|
||||
|
@ -2597,6 +2597,7 @@ namespace SqlSugar
|
||||
asyncQueryableBuilder.DisableTop = this.QueryBuilder.DisableTop;
|
||||
asyncQueryableBuilder.Offset = this.QueryBuilder.Offset;
|
||||
asyncQueryableBuilder.IsSqlQuery = this.QueryBuilder.IsSqlQuery;
|
||||
asyncQueryableBuilder.OldSql = this.QueryBuilder.OldSql;
|
||||
}
|
||||
protected int SetCacheTime(int cacheDurationInSeconds)
|
||||
{
|
||||
|
@ -45,7 +45,7 @@ namespace SqlSugar
|
||||
public object SelectValue { get; set; }
|
||||
public string SelectCacheKey { get; set; }
|
||||
public string EntityName { get; set; }
|
||||
|
||||
public string OldSql { get; set; }
|
||||
|
||||
public Type EntityType { get; set; }
|
||||
public Type ResultType { get; set; }
|
||||
@ -491,21 +491,14 @@ namespace SqlSugar
|
||||
}
|
||||
public string GetSqlQuerySql(string result)
|
||||
{
|
||||
if (result.Contains(" t ")&&result.Contains("SELECT .* FROM") && this.IsSqlQuery && (Skip == null && Take == null)&&(this.WhereInfos==null||this.WhereInfos.Count==0))
|
||||
if (this.IsSqlQuery&&this.OldSql.HasValue() && (Skip == null && Take == null) && (this.WhereInfos == null || this.WhereInfos.Count == 0))
|
||||
{
|
||||
var old = result;
|
||||
var regex = @"^SELECT .* FROM \(((.|\n|\r)*)\) t $";
|
||||
if (this.Context.CurrentConnectionConfig.DbType .IsIn( DbType.MySql,DbType.PostgreSQL,DbType.Sqlite))
|
||||
{
|
||||
result = result.Substring(0,result.Length-1);
|
||||
}
|
||||
result = System.Text.RegularExpressions.Regex.Match(result,regex).Groups[1].Value;
|
||||
if (string.IsNullOrEmpty(result))
|
||||
{
|
||||
result = old;
|
||||
}
|
||||
return this.OldSql;
|
||||
}
|
||||
else
|
||||
{
|
||||
return result;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
@ -588,6 +588,7 @@ namespace SqlSugar
|
||||
var sqlBuilder = InstanceFactory.GetSqlbuilder(this.Context.CurrentConnectionConfig);
|
||||
var result= this.Context.Queryable<T>().AS(sqlBuilder.GetPackTable(sql, sqlBuilder.GetDefaultShortName())).With(SqlWith.Null).Select(sqlBuilder.GetDefaultShortName() + ".*");
|
||||
result.QueryBuilder.IsSqlQuery = true;
|
||||
result.QueryBuilder.OldSql = sql;
|
||||
return result;
|
||||
}
|
||||
#endregion
|
||||
|
Loading…
Reference in New Issue
Block a user