Update SqlFunc.Json

This commit is contained in:
sunkaixuan 2022-12-01 02:16:30 +08:00
parent e75d50ba5a
commit 3c89cd0fbf
2 changed files with 25 additions and 2 deletions

View File

@ -257,12 +257,12 @@ namespace SqlSugar
public static string Oracle_ToChar(DateTime date, string format) { throw new NotSupportedException("Can only be used in expressions"); }
public static int SqlServer_DateDiff(string dateType,DateTime date1,DateTime date2) { throw new NotSupportedException("Can only be used in expressions"); }
public static void JsonListObjectAny(object jsonListObject, string fieldName, string value)
public static bool JsonListObjectAny(object jsonListObject, string fieldName, object value)
{
throw new NotSupportedException("Can only be used in expressions");
}
public static void JsonArrayAny(object jsonArray,string arrayValue)
public static bool JsonArrayAny(object jsonArray,object arrayValue)
{
throw new NotSupportedException("Can only be used in expressions");
}

View File

@ -443,5 +443,28 @@ namespace SqlSugar
//var parameter1 = model.Args[1];
return $" ({parameter.MemberName}::json) ";
}
public override string JsonArrayAny(MethodCallExpressionModel model)
{
if (UtilMethods.IsNumber(model.Args[1].MemberValue.GetType().Name))
{
return $"{model.Args[0].MemberName}::jsonb @> '[{model.Args[1].MemberValue}]'::jsonb";
}
else
{
return $"{model.Args[0].MemberName}::jsonb @> '[\"{model.Args[1].MemberValue}\"]'::jsonb";
}
}
public override string JsonListObjectAny(MethodCallExpressionModel model)
{
if (UtilMethods.IsNumber(model.Args[2].MemberValue.GetType().Name))
{
return $"{model.Args[0].MemberName}::jsonb @> '[{{\"{model.Args[1].MemberValue}\":{model.Args[2].MemberValue}}}]'::jsonb";
}
else
{
return $"{model.Args[0].MemberName}::jsonb @> '[{{\"{model.Args[1].MemberValue}\":\"{model.Args[2].MemberValue}\"}}]'::jsonb";
}
}
}
}