- 增加 IUpdate/IDelete WhereDynamicFilter API;#1521

This commit is contained in:
2881099
2023-12-09 02:07:14 +08:00
parent 139c19e224
commit 338daf398e
5 changed files with 344 additions and 14 deletions

View File

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

View File

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