mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-19 20:38:16 +08:00
- 增加 IUpdate/IDelete WhereDynamicFilter API;#1521
This commit is contained in:
@ -120,8 +120,21 @@ namespace FreeSql.Internal.CommonProvider
|
||||
public IDelete<T1> WhereDynamic(object dywhere, bool not = false) => not == false ?
|
||||
this.Where(_commonUtils.WhereObject(_table, "", dywhere)) :
|
||||
this.Where($"not({_commonUtils.WhereObject(_table, "", dywhere)})");
|
||||
public IDelete<T1> WhereDynamicFilter(DynamicFilterInfo filter)
|
||||
{
|
||||
var alias = "t_" + Guid.NewGuid().ToString("n").Substring(0, 8);
|
||||
var tempQuery = _orm.Select<object>().AsType(_table.Type).DisableGlobalFilter().As(alias);
|
||||
tempQuery.WhereDynamicFilter(filter);
|
||||
var where = (tempQuery as Select0Provider)._where.ToString().Replace(alias + ".", "");
|
||||
if (where.StartsWith(" AND "))
|
||||
{
|
||||
if (++_whereTimes == 1) _where.Append(where.Substring(5));
|
||||
else _where.Append(where);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public IDelete<T1> DisableGlobalFilter(params string[] name)
|
||||
public IDelete<T1> DisableGlobalFilter(params string[] name)
|
||||
{
|
||||
if (_whereGlobalFilter.Any() == false) return this;
|
||||
if (name?.Any() != true)
|
||||
|
@ -847,8 +847,17 @@ namespace FreeSql.Internal.CommonProvider
|
||||
public IUpdate<T1> WhereDynamic(object dywhere, bool not = false) => not == false ?
|
||||
this.Where(_commonUtils.WhereObject(_table, "", dywhere)) :
|
||||
this.Where($"not({_commonUtils.WhereObject(_table, "", dywhere)})");
|
||||
public IUpdate<T1> WhereDynamicFilter(DynamicFilterInfo filter)
|
||||
{
|
||||
var alias = "t_" + Guid.NewGuid().ToString("n").Substring(0, 8);
|
||||
var tempQuery = _orm.Select<object>().AsType(_table.Type).DisableGlobalFilter().As(alias);
|
||||
tempQuery.WhereDynamicFilter(filter);
|
||||
var where = (tempQuery as Select0Provider)._where.ToString().Replace(alias + ".", "");
|
||||
_where.Append(where);
|
||||
return this;
|
||||
}
|
||||
|
||||
public IUpdate<T1> DisableGlobalFilter(params string[] name)
|
||||
public IUpdate<T1> DisableGlobalFilter(params string[] name)
|
||||
{
|
||||
if (_whereGlobalFilter.Any() == false) return this;
|
||||
if (name?.Any() != true)
|
||||
|
Reference in New Issue
Block a user