mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 10:42:52 +08:00
- 增加 linq.dynamic Expression Invoke 解析;#1378
This commit is contained in:
parent
818d335ec7
commit
637bff767a
@ -931,7 +931,16 @@ namespace FreeSql.Internal
|
||||
return $"not({ExpressionLambdaToSql(notExp, tsc)})";
|
||||
case ExpressionType.Quote: return ExpressionLambdaToSql((exp as UnaryExpression)?.Operand, tsc);
|
||||
case ExpressionType.Lambda: return ExpressionLambdaToSql((exp as LambdaExpression)?.Body, tsc);
|
||||
case ExpressionType.Invoke: return formatSql(Expression.Lambda(exp).Compile().DynamicInvoke(), tsc.mapType, tsc.mapColumnTmp, tsc.dbParams);
|
||||
//case ExpressionType.Invoke: return formatSql(Expression.Lambda(exp).Compile().DynamicInvoke(), tsc.mapType, tsc.mapColumnTmp, tsc.dbParams);
|
||||
case ExpressionType.Invoke:
|
||||
var invokeExp = exp as InvocationExpression;
|
||||
var invokeReplaceVistor = new FreeSql.Internal.CommonExpression.ReplaceVisitor();
|
||||
var invokeReplaceExp = invokeExp.Expression;
|
||||
var invokeLambdaExp = invokeReplaceExp as LambdaExpression;
|
||||
var len = Math.Min(invokeExp.Arguments.Count, invokeLambdaExp.Parameters.Count);
|
||||
for (var a = 0; a < len; a++)
|
||||
invokeReplaceExp = invokeReplaceVistor.Modify(invokeReplaceExp, invokeLambdaExp.Parameters[a], invokeExp.Arguments[a]);
|
||||
return ExpressionLambdaToSql(invokeReplaceExp, tsc);
|
||||
case ExpressionType.TypeAs:
|
||||
case ExpressionType.Convert:
|
||||
case ExpressionType.ConvertChecked:
|
||||
|
Loading…
x
Reference in New Issue
Block a user