Support : Where(it=>list.All(x=>x.id==it.Id))

This commit is contained in:
sunkaixuan
2023-10-22 01:39:56 +08:00
parent 790ecadee4
commit 7663a7c135
3 changed files with 16 additions and 0 deletions

View File

@@ -103,6 +103,10 @@ namespace SqlSugar
{
parameter.CommonTempData = GetNewExpressionValue(item);
}
else if (ExpressionTool.GetMethodName(item) == "All" && !ExpressionTool.GetTopLevelMethodCalls(item).Contains("Subqueryable"))
{
parameter.CommonTempData = GetNewExpressionValue(item);
}
else
{
this.Start();

View File

@@ -168,6 +168,10 @@ namespace SqlSugar
{
name = "ListAny";
}
else if (name == "All" && ExpressionTool.IsVariable(express.Arguments[0]))
{
name = "ListAll";
}
var args = express.Arguments.Cast<Expression>().ToList();
MethodCallExpressionModel model = new MethodCallExpressionModel();
model.Args = new List<MethodCallExpressionArgs>();

View File

@@ -911,6 +911,10 @@ namespace SqlSugar
this.Context.Result.IsNavicate = true;
this.Context.Parameters.RemoveAll(it => model.Args[0].MemberName.ObjToString().Contains(it.ParameterName));
return this.Context.DbMehtods.ListAny(model);
case "ListAll":
this.Context.Result.IsNavicate = true;
this.Context.Parameters.RemoveAll(it => model.Args[0].MemberName.ObjToString().Contains(it.ParameterName));
return this.Context.DbMehtods.ListAll(model);
case "Modulo":
return this.Context.DbMehtods.Modulo(model);
case "Like":
@@ -967,6 +971,10 @@ namespace SqlSugar
{
return true;
}
if (expression.Method.Name == "All" && expression.Arguments.Count() > 0 && ExpressionTool.IsVariable(expression.Arguments[0]))
{
return true;
}
if (expression.Method.Name == "Format" && expression.Method.DeclaringType == UtilConstants.StringType)
{
return true;