mirror of
				https://github.com/nsnail/FreeSql.git
				synced 2025-11-04 09:15:27 +08:00 
			
		
		
		
	- 优化 GlobalFilter Apply 自动重命名表达式参数名,避免内容重复问题;
- 修复 表达式解析 Guid.NewGuid() 的错误;
This commit is contained in:
		@@ -1335,7 +1335,7 @@ namespace FreeSql.Internal
 | 
			
		||||
            }
 | 
			
		||||
            return null;
 | 
			
		||||
        }
 | 
			
		||||
        class ReplaceVisitor : ExpressionVisitor
 | 
			
		||||
        internal class ReplaceVisitor : ExpressionVisitor
 | 
			
		||||
        {
 | 
			
		||||
            private ParameterExpression parameter;
 | 
			
		||||
            public Expression Modify(Expression expression, ParameterExpression parameter)
 | 
			
		||||
 
 | 
			
		||||
@@ -32,7 +32,13 @@ namespace FreeSql.Internal
 | 
			
		||||
 | 
			
		||||
            _filters.TryGetValue(name, out var item);
 | 
			
		||||
            if (item == null) item = new Item { Id = ++_id, Name = name };
 | 
			
		||||
            item.Where = where;
 | 
			
		||||
 | 
			
		||||
            var newParameter = Expression.Parameter(typeof(TEntity), $"gf{_id}");
 | 
			
		||||
            var newlambda = Expression.Lambda<Func<TEntity, bool>>(
 | 
			
		||||
                new CommonExpression.ReplaceVisitor().Modify(where.Body, newParameter),
 | 
			
		||||
                newParameter
 | 
			
		||||
            );
 | 
			
		||||
            item.Where = newlambda;
 | 
			
		||||
            _filters.AddOrUpdate(name, item, (_, __) => item);
 | 
			
		||||
            return this;
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user