diff --git a/FreeSql.Tests/FreeSql.Tests/PostgreSQL/PostgreSQLExpression/StringTest.cs b/FreeSql.Tests/FreeSql.Tests/PostgreSQL/PostgreSQLExpression/StringTest.cs index 341d8aa7..987f1a50 100644 --- a/FreeSql.Tests/FreeSql.Tests/PostgreSQL/PostgreSQLExpression/StringTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/PostgreSQL/PostgreSQLExpression/StringTest.cs @@ -72,6 +72,9 @@ namespace FreeSql.Tests.PostgreSQLExpression val1 = string.Join("**", fsql.Select().ToList(a => a.id)); val2 = fsql.Select().ToList(a => string.Join("**", fsql.Select().As("b").ToList(b => b.id))); Assert.Equal(val1, val2[0]); + + fsql.GlobalFilter.Apply("test001", a => a.name.Length > 0); + val2 = fsql.Select().ToList(a => string.Join("**", fsql.Select().As("b").ToList(b => b.id))); } class StringJoin01 { diff --git a/FreeSql/Internal/CommonExpression.cs b/FreeSql/Internal/CommonExpression.cs index 48dec526..ae1ffa9c 100644 --- a/FreeSql/Internal/CommonExpression.cs +++ b/FreeSql/Internal/CommonExpression.cs @@ -1030,7 +1030,7 @@ namespace FreeSql.Internal { var fsqlGlobalFilter = fsqlSelect0._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)