- 增加 ISelect.WhereDynamicFilter 方法实现动态过滤条件(与前端交互);

This commit is contained in:
28810
2020-05-07 22:54:16 +08:00
parent ebe1b7a34f
commit e3dba006cf
6 changed files with 556 additions and 164 deletions

View File

@ -0,0 +1,84 @@
using FreeSql;
using FreeSql.Internal;
using FreeSql.Internal.CommonProvider;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;
using System.Text;
namespace FreeSql.Internal.Model
{
/// <summary>
/// 动态过滤条件
/// </summary>
public class DynamicFilterInfo
{
/// <summary>
/// 属性名Name<para></para>
/// 导航属性Parent.Name<para></para>
/// 多表b.Name<para></para>
/// </summary>
public string Field { get; set; }
/// <summary>
/// 操作符
/// </summary>
public DynamicFilterOperator Operator { get; set; }
/// <summary>
/// 值
/// </summary>
public string Value { get; set; }
/// <summary>
/// Filters 下的逻辑运算符
/// </summary>
public DynamicFilterLogic Logic { get; set; }
/// <summary>
/// 子过滤条件,它与当前的逻辑关系是 And<para></para>
/// 注意:当前 Field 可以留空
/// </summary>
public List<DynamicFilterInfo> Filters { get; set; }
}
public enum DynamicFilterLogic { And, Or }
public enum DynamicFilterOperator
{
/// <summary>
/// like
/// </summary>
Contains,
StartsWith,
EndsWith,
NotContains,
NotStartsWith,
NotEndsWith,
/// <summary>
/// =
/// </summary>
Equals,
Eq,
/// <summary>
/// &lt;&gt;
/// </summary>
NotEqual,
/// <summary>
/// &gt;
/// </summary>
GreaterThan,
/// <summary>
/// &gt;=
/// </summary>
GreaterThanOrEqual,
/// <summary>
/// &lt;
/// </summary>
LessThan,
/// <summary>
/// &lt;=
/// </summary>
LessThanOrEqual,
}
}