mirror of
				https://github.com/nsnail/FreeSql.git
				synced 2025-11-04 17:20:49 +08:00 
			
		
		
		
	- 修复 Expression Or/And 扩展方法在多表中可能存在的错误;
This commit is contained in:
		@@ -125,13 +125,6 @@
 | 
				
			|||||||
            清空状态数据
 | 
					            清空状态数据
 | 
				
			||||||
            </summary>
 | 
					            </summary>
 | 
				
			||||||
        </member>
 | 
					        </member>
 | 
				
			||||||
        <member name="M:FreeSql.DbSet`1.RemoveAsync(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}})">
 | 
					 | 
				
			||||||
            <summary>
 | 
					 | 
				
			||||||
            根据 lambda 条件删除数据
 | 
					 | 
				
			||||||
            </summary>
 | 
					 | 
				
			||||||
            <param name="predicate"></param>
 | 
					 | 
				
			||||||
            <returns></returns>
 | 
					 | 
				
			||||||
        </member>
 | 
					 | 
				
			||||||
        <member name="M:FreeSql.DbSet`1.Add(`0)">
 | 
					        <member name="M:FreeSql.DbSet`1.Add(`0)">
 | 
				
			||||||
            <summary>
 | 
					            <summary>
 | 
				
			||||||
            添加
 | 
					            添加
 | 
				
			||||||
@@ -486,14 +479,5 @@
 | 
				
			|||||||
            <param name="that"></param>
 | 
					            <param name="that"></param>
 | 
				
			||||||
            <returns></returns>
 | 
					            <returns></returns>
 | 
				
			||||||
        </member>
 | 
					        </member>
 | 
				
			||||||
        <member name="M:Microsoft.Extensions.DependencyInjection.FreeSqlRepositoryDependencyInjection.AddFreeRepository(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{FreeSql.FluentDataFilter},System.Reflection.Assembly[])">
 | 
					 | 
				
			||||||
            <summary>
 | 
					 | 
				
			||||||
            批量注入 Repository,可以参考代码自行调整
 | 
					 | 
				
			||||||
            </summary>
 | 
					 | 
				
			||||||
            <param name="services"></param>
 | 
					 | 
				
			||||||
            <param name="globalDataFilter"></param>
 | 
					 | 
				
			||||||
            <param name="assemblies"></param>
 | 
					 | 
				
			||||||
            <returns></returns>
 | 
					 | 
				
			||||||
        </member>
 | 
					 | 
				
			||||||
    </members>
 | 
					    </members>
 | 
				
			||||||
</doc>
 | 
					</doc>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,9 +20,9 @@ namespace System.Linq.Expressions
 | 
				
			|||||||
            if (exp1 == null) return exp2;
 | 
					            if (exp1 == null) return exp2;
 | 
				
			||||||
            if (exp2 == null) return exp1;
 | 
					            if (exp2 == null) return exp1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var newParameters = exp1.Parameters.Select((a, b) => Expression.Parameter(a.Type, $"new{b}")).ToArray();
 | 
					            var newParameters = exp1.Parameters.Select((a, b) => Expression.Parameter(a.Type, a.Name /*$"new{b}"*/)).ToArray();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var left = new NewExpressionVisitor(newParameters, exp2.Parameters.ToArray()).Replace(exp1.Body);
 | 
					            var left = new NewExpressionVisitor(newParameters, exp1.Parameters.ToArray()).Replace(exp1.Body);
 | 
				
			||||||
            var right = new NewExpressionVisitor(newParameters, exp2.Parameters.ToArray()).Replace(exp2.Body);
 | 
					            var right = new NewExpressionVisitor(newParameters, exp2.Parameters.ToArray()).Replace(exp2.Body);
 | 
				
			||||||
            var body = isAndAlso ? Expression.AndAlso(left, right) : Expression.OrElse(left, right);
 | 
					            var body = isAndAlso ? Expression.AndAlso(left, right) : Expression.OrElse(left, right);
 | 
				
			||||||
            return Expression.Lambda(exp1.Type, body, newParameters);
 | 
					            return Expression.Lambda(exp1.Type, body, newParameters);
 | 
				
			||||||
@@ -32,7 +32,7 @@ namespace System.Linq.Expressions
 | 
				
			|||||||
            if (condition == false) return exp;
 | 
					            if (condition == false) return exp;
 | 
				
			||||||
            if (exp == null) return null;
 | 
					            if (exp == null) return null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var newParameters = exp.Parameters.Select((a, b) => Expression.Parameter(a.Type, $"new{b}")).ToArray();
 | 
					            var newParameters = exp.Parameters.Select((a, b) => Expression.Parameter(a.Type, a.Name /*$"new{b}"*/)).ToArray();
 | 
				
			||||||
            var body = Expression.Not(exp.Body);
 | 
					            var body = Expression.Not(exp.Body);
 | 
				
			||||||
            return Expression.Lambda(exp.Type, body, newParameters);
 | 
					            return Expression.Lambda(exp.Type, body, newParameters);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user