Synchronization code

This commit is contained in:
sunkaixuan 2025-02-15 15:01:29 +08:00
parent f1eaa5e846
commit 3c13edadb6
3 changed files with 29 additions and 0 deletions

View File

@ -811,6 +811,7 @@ namespace SqlSugar
{
var pars = new MethodCallExpressionModel()
{
Conext=this.Context,
Args = new List<MethodCallExpressionArgs>() {
new MethodCallExpressionArgs() { IsMember=true, MemberName=value, MemberValue=value },
new MethodCallExpressionArgs() { MemberName=type, MemberValue=type}

View File

@ -282,6 +282,10 @@ namespace SqlSugar
{
expItem = (item as UnaryExpression).Operand;
}
else if (item is MethodCallExpression callExpression&& callExpression.Method.Name== "op_Implicit")
{
expItem = callExpression.Arguments[0];
}
AppendItem(parameter, name, args, model, expItem);
}
if (appendArgs != null)

View File

@ -1037,8 +1037,32 @@ namespace SqlSugar
private bool IsContainsArray(MethodCallExpression express, string methodName, bool isValidNativeMethod)
{
if (isMemoryExtensionsContainsArray(express, methodName))
{
return true;
}
return !isValidNativeMethod && express.Method.DeclaringType.Namespace.IsIn("System.Collections", "System.Linq", "System.Collections.Generic") && methodName == "Contains";
}
private bool isMemoryExtensionsContainsArray(MethodCallExpression express, string methodName)
{
var isMemoryExtensionsContainsArray = false;
if (express.Method.DeclaringType.Name == "MemoryExtensions" && methodName == "Contains")
{
if (express.Arguments.Count() == 2)
{
if (express.Arguments.First() is MethodCallExpression callExpression)
{
if (callExpression.Method.Name == "op_Implicit")
{
isMemoryExtensionsContainsArray = true;
}
}
}
}
return isMemoryExtensionsContainsArray;
}
private bool IsSubMethod(MethodCallExpression express, string methodName)
{
return SubTools.SubItemsConst.Any(it => it.Name == methodName) && express.Object != null && (express.Object.Type.Name.StartsWith("Subqueryable`"));