diff --git a/Src/Asp.Net/SqlSugar/Realization/MySql/SqlBuilder/MySqlExpressionContext.cs b/Src/Asp.Net/SqlSugar/Realization/MySql/SqlBuilder/MySqlExpressionContext.cs index fdee20e2e..46ed0dd72 100644 --- a/Src/Asp.Net/SqlSugar/Realization/MySql/SqlBuilder/MySqlExpressionContext.cs +++ b/Src/Asp.Net/SqlSugar/Realization/MySql/SqlBuilder/MySqlExpressionContext.cs @@ -173,5 +173,36 @@ namespace SqlSugar { return string.Format("instr ({0},{1})", model.Args[0].MemberName, model.Args[1].MemberName); } + + public override string JsonField(MethodCallExpressionModel model) + { + var parameter = model.Args[0]; + var parameter1 = model.Args[1]; + //var parameter2 = model.Args[2]; + //var parameter3= model.Args[3]; + var result = GetJson(parameter.MemberName, parameter1.MemberValue, model.Args.Count() == 2); + if (model.Args.Count > 2) + { + result = GetJson(result, model.Args[2].MemberValue, model.Args.Count() == 3); + } + if (model.Args.Count > 3) + { + result = GetJson(result, model.Args[3].MemberValue, model.Args.Count() == 4); + } + if (model.Args.Count > 4) + { + result = GetJson(result, model.Args[4].MemberValue, model.Args.Count() == 5); + } + if (model.Args.Count > 5) + { + result = GetJson(result, model.Args[5].MemberValue, model.Args.Count() == 6); + } + return result; + } + + private string GetJson(object memberName1, object memberName2, bool isLast) + { + return $"{memberName1}->\"$.{memberName2}\""; + } } }