mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-19 20:38:16 +08:00
- 优化 WhereDynamic 传入 DynamicFilterInfo 也能执行;
This commit is contained in:
@ -338,9 +338,26 @@ namespace FreeSql.Internal.CommonProvider
|
||||
_tables[0].Parameter = exp.Parameters[0];
|
||||
return this.InternalWhere(exp?.Body);
|
||||
}
|
||||
public ISelect<T1> WhereDynamic(object dywhere, bool not = false) => not == false ?
|
||||
this.Where(_commonUtils.WhereObject(_tables.First().Table, $"{_tables.First().Alias}.", dywhere)) :
|
||||
this.Where($"not({_commonUtils.WhereObject(_tables.First().Table, $"{_tables.First().Alias}.", dywhere)})");
|
||||
public ISelect<T1> WhereDynamic(object dywhere, bool not = false)
|
||||
{
|
||||
if (dywhere is DynamicFilterInfo dyfilter)
|
||||
{
|
||||
if (not == false) return this.WhereDynamicFilter(dyfilter);
|
||||
|
||||
var oldwhere = _where.ToString();
|
||||
_where.Clear();
|
||||
|
||||
this.WhereDynamicFilter(dyfilter);
|
||||
var newwhere = _where.ToString();
|
||||
_where.Clear();
|
||||
|
||||
return this
|
||||
.Where(oldwhere)
|
||||
.WhereIf(string.IsNullOrWhiteSpace(newwhere) == false, $"not({newwhere})");
|
||||
}
|
||||
var wheresql = _commonUtils.WhereObject(_tables.First().Table, $"{_tables.First().Alias}.", dywhere);
|
||||
return not == false ? this.Where(wheresql) : this.Where($"not({wheresql})");
|
||||
}
|
||||
|
||||
public ISelect<T1> WhereCascade(Expression<Func<T1, bool>> exp)
|
||||
{
|
||||
|
Reference in New Issue
Block a user