Skip to content

Commit df0acfc

Browse files
committed
-修复 ZeroDbEntity WhereDynamic DateRange 问题;
1 parent 6d77d67 commit df0acfc

File tree

3 files changed

+242
-330
lines changed

3 files changed

+242
-330
lines changed

Extensions/FreeSql.Extensions.ZeroEntity/ZeroDbContext.SelectImpl.cs

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -717,7 +717,7 @@ public SelectImpl WhereDynamicFilter(DynamicFilterInfo filter)
717717
string ParseDynamicFilter(DynamicFilterInfo filter)
718718
{
719719
var replacedFilter = new DynamicFilterInfo();
720-
var replacedMap = new List<NativeTuple<string, string, string>>();
720+
var replacedMap = new List<NativeTuple<string, string, string, DynamicFilterInfo>>();
721721
LocalCloneFilter(filter, replacedFilter);
722722
var oldWhere = _selectProvider._where.ToString();
723723
var newWhere = "";
@@ -734,14 +734,13 @@ string ParseDynamicFilter(DynamicFilterInfo filter)
734734
foreach (var rm in replacedMap)
735735
{
736736
var find = $"{_selectProvider._tables[0].Alias}.{_common.QuoteSqlName(rm.Item1)}";
737-
while (true)
737+
var forend = rm.Item4.Operator == DynamicFilterOperator.DateRange ||
738+
rm.Item4.Operator == DynamicFilterOperator.Range ? 2 : 1;
739+
for (var forstart = 0; forstart < forend; forstart++)
738740
{
739-
var idx = newWhere.IndexOf(find);
740-
if (idx != -1 && !Regex.IsMatch(newWhere.Substring(idx - 1, 1), @"[\w_]"))
741-
newWhere = $"{newWhere.Substring(0, idx)}{rm.Item2}{newWhere.Substring(idx + find.Length)}";
742-
else
743-
break;
744-
}
741+
var idx = newWhere.IndexOf(find);
742+
if (idx != -1 && !Regex.IsMatch(newWhere.Substring(idx - 1, 1), @"[\w_]")) newWhere = $"{newWhere.Substring(0, idx)}{rm.Item2}{newWhere.Substring(idx + find.Length)}";
743+
}
745744
}
746745
return newWhere;
747746

@@ -760,7 +759,7 @@ void LocalCloneFilter(DynamicFilterInfo source, DynamicFilterInfo target)
760759
target.Field = pname;
761760
else
762761
target.Field = TestDynamicFilterInfo._dictTypeToPropertyname[typeof(string)];
763-
replacedMap.Add(NativeTuple.Create(target.Field, parseResult.Item1, parseResult.Item3));
762+
replacedMap.Add(NativeTuple.Create(target.Field, parseResult.Item1, parseResult.Item3, source));
764763
}
765764
}
766765
if (source.Filters?.Any() == true)

FreeSql.DbContext/FreeSql.DbContext.xml

Lines changed: 0 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)