- 优化 GlobalFilter 子查询传播重复的问题;#642

This commit is contained in:
2881099 2021-01-12 17:14:17 +08:00
parent fcfeacdc95
commit 7379050bfd
2 changed files with 4 additions and 1 deletions

View File

@ -72,6 +72,9 @@ namespace FreeSql.Tests.PostgreSQLExpression
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)));
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
{

View File

@ -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)