Update exp to sql

This commit is contained in:
sunkaixuna
2021-09-10 17:59:47 +08:00
parent b449a446f8
commit 0046f6c3c9
4 changed files with 23 additions and 2 deletions

View File

@@ -249,6 +249,13 @@ namespace OrmTest
customName = SqlFunc.Subqueryable<Custom>().Where(s=>s.Id==it.CustomId).GroupBy(s=>s.Name).Having(s=>SqlFunc.AggregateCount(s.Id)>0).Select(s => s.Name) customName = SqlFunc.Subqueryable<Custom>().Where(s=>s.Id==it.CustomId).GroupBy(s=>s.Name).Having(s=>SqlFunc.AggregateCount(s.Id)>0).Select(s => s.Name)
}).ToList(); }).ToList();
var exp = Expressionable.Create<Custom>().And(s => s.Id==1).ToExpression();
var list4 = db.Queryable<Order>().Select(it => new
{
customName = SqlFunc.Subqueryable<Custom>().Where(exp).GroupBy(s => s.Name).Having(s => SqlFunc.AggregateCount(s.Id) > 0).Select(s => s.Name)
}).ToList();
Console.WriteLine("#### Subquery End ####"); Console.WriteLine("#### Subquery End ####");
} }

View File

@@ -55,7 +55,7 @@ namespace SqlSugar
} }
if (Regex.IsMatch(result, regex)) if (Regex.IsMatch(result, regex))
{ {
result = "AND " + this.Context.Parameters.First(it => it.ParameterName == Regex.Match(result, regex).Groups[1].Value).Value; result = "AND " + GetValue(result, regex);
return result; return result;
} }
@@ -64,5 +64,10 @@ namespace SqlSugar
result = result.Replace(selfParameterName, SubTools.GetSubReplace(this.Context)); result = result.Replace(selfParameterName, SubTools.GetSubReplace(this.Context));
return result; return result;
} }
private object GetValue(string result, string regex)
{
return this.Context.Parameters.First(it => it.ParameterName == Regex.Match(result, regex).Groups[1].Value).Value;
}
} }
} }

View File

@@ -55,7 +55,7 @@ namespace SqlSugar
} }
if (Regex.IsMatch(result, regex)) if (Regex.IsMatch(result, regex))
{ {
result = "WHERE " + this.Context.Parameters.First(it => it.ParameterName == Regex.Match(result, regex).Groups[1].Value).Value; result = "WHERE " + GetValue(result, regex);
return result; return result;
} }
@@ -64,5 +64,10 @@ namespace SqlSugar
result = result.Replace(selfParameterName, SubTools.GetSubReplace(this.Context)); result = result.Replace(selfParameterName, SubTools.GetSubReplace(this.Context));
return result; return result;
} }
private object GetValue(string result, string regex)
{
return this.Context.Parameters.First(it => it.ParameterName == Regex.Match(result, regex).Groups[1].Value).Value;
}
} }
} }

View File

@@ -27,6 +27,10 @@ namespace SqlSugar
{ {
return this; return this;
} }
public Subqueryable<T> Where(Expression exp)
{
return this;
}
public Subqueryable<T> Where(Func<T, bool> expression) public Subqueryable<T> Where(Func<T, bool> expression)
{ {
return this; return this;