mirror of
				https://github.com/nsnail/FreeSql.git
				synced 2025-11-04 17:20:49 +08:00 
			
		
		
		
	- 优化 GlobalFilter 子查询传播重复的问题;#642
This commit is contained in:
		@@ -72,6 +72,9 @@ namespace FreeSql.Tests.PostgreSQLExpression
 | 
				
			|||||||
            val1 = string.Join("**", fsql.Select<StringJoin01>().ToList(a => a.id));
 | 
					            val1 = string.Join("**", fsql.Select<StringJoin01>().ToList(a => a.id));
 | 
				
			||||||
            val2 = fsql.Select<StringJoin01>().ToList(a => string.Join("**", fsql.Select<StringJoin01>().As("b").ToList(b => b.id)));
 | 
					            val2 = fsql.Select<StringJoin01>().ToList(a => string.Join("**", fsql.Select<StringJoin01>().As("b").ToList(b => b.id)));
 | 
				
			||||||
            Assert.Equal(val1, val2[0]);
 | 
					            Assert.Equal(val1, val2[0]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            fsql.GlobalFilter.Apply<StringJoin01>("test001", a => a.name.Length > 0);
 | 
				
			||||||
 | 
					            val2 = fsql.Select<StringJoin01>().ToList(a => string.Join("**", fsql.Select<StringJoin01>().As("b").ToList(b => b.id)));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        class StringJoin01
 | 
					        class StringJoin01
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1030,7 +1030,7 @@ namespace FreeSql.Internal
 | 
				
			|||||||
                                        {
 | 
					                                        {
 | 
				
			||||||
                                            var fsqlGlobalFilter = fsqlSelect0._whereGlobalFilter;
 | 
					                                            var fsqlGlobalFilter = fsqlSelect0._whereGlobalFilter;
 | 
				
			||||||
                                            if (fsqlGlobalFilter != tsc.whereGlobalFilter)
 | 
					                                            if (fsqlGlobalFilter != tsc.whereGlobalFilter)
 | 
				
			||||||
                                                fsqlGlobalFilter.AddRange(tsc.whereGlobalFilter);
 | 
					                                                fsqlGlobalFilter.AddRange(tsc.whereGlobalFilter.Where(b => !fsqlGlobalFilter.Any(a => a.Name == b.Name)));
 | 
				
			||||||
                                        }
 | 
					                                        }
 | 
				
			||||||
                                    }
 | 
					                                    }
 | 
				
			||||||
                                    else if (fsqlType != null)
 | 
					                                    else if (fsqlType != null)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user