namespace Dpz.Core.Entity.Base.ExpressTreeQuery;

/// <summary>
/// 定义查询过滤条件的枚举
/// 用于指定在生成表达式树时,如何验证和处理请求参数的值
/// </summary>
public enum FilterCondition
{
    /// <summary>
    /// 验证值不为 null
    /// 适用于所有可空类型
    /// </summary>
    NotNull,

    /// <summary>
    /// 验证字符串不为 null 且不为空字符串
    /// 仅适用于 <see cref="string"/> 类型
    /// 等同于  <![CDATA[value != null && value != ""]]>
    /// </summary>
    NotNullOrEmpty,

    /// <summary>
    /// 验证字符串不为 null 且不为空字符串且不为纯空白字符
    /// 仅适用于 <see cref="string"/> 类型
    /// 等同于 <![CDATA[value != null && value.Trim() != ""]]>
    /// </summary>
    NotNullOrWhiteSpace,

    /// <summary>
    /// 验证集合不为 null 且包含至少一个元素
    /// 适用于实现了 <see cref="System.Collections.ICollection"/> 接口的类型
    /// 等同于 <![CDATA[value != null && value.Count > 0]]>
    /// </summary>
    LeftAny,

    /// <summary>
    /// 验证数组不为 null 且包含至少一个元素
    /// 适用于 <see cref="System.Array"/> 类型
    /// 等同于 <![CDATA[value != null && value.Length > 0]]>
    /// </summary>
    RightAny,

    /// <summary>
    /// 验证值等于指定的比较值
    /// 适用于所有可比较的类型
    /// 等同于 <![CDATA[value == comparisonValue]]>
    /// </summary>
    EqualValue,

    /// <summary>
    /// 验证值不等于指定的比较值
    /// 适用于所有可比较的类型
    /// 等同于 <![CDATA[value != comparisonValue]]>
    /// </summary>
    NotEqualValue,

    /// <summary>
    /// 验证值大于指定的比较值
    /// 适用于实现了 IComparable 接口的类型
    /// 等同于 <![CDATA[value > comparisonValue]]>
    /// </summary>
    GtValue,

    /// <summary>
    /// 验证值小于指定的比较值
    /// 适用于实现了 IComparable 接口的类型
    /// 等同于 <![CDATA[value < comparisonValue]]>
    /// </summary>
    LtValue,

    /// <summary>
    /// 验证值大于或等于指定的比较值
    /// 适用于实现了 IComparable 接口的类型
    /// 等同于 <![CDATA[value >= comparisonValue]]>
    /// </summary>
    GtOrEqualValue,

    /// <summary>
    /// 验证值小于或等于指定的比较值
    /// 适用于实现了 IComparable 接口的类型
    /// 等同于 <![CDATA[value <= comparisonValue]]>
    /// </summary>
    LtOrEqualValue,
}
⚠⚠    以下内容为AI分析的结果,请根据实际情况进行判断。

FilterCondition 枚举解析

这个 FilterCondition 枚举定义了一系列查询过滤条件,用于在生成表达式树时验证和处理请求参数的值。它是 Dpz.Core.Entity.Base.ExpressTreeQuery 命名空间的一部分,主要用于构建动态查询条件。

主要功能

这个枚举提供了多种验证条件,可以分为以下几类:

1. 空值检查

  • NotNull: 验证值不为 null(适用于所有可空类型)
  • NotNullOrEmpty: 验证字符串不为 null 且不为空字符串(仅适用于 string 类型)
  • NotNullOrWhiteSpace: 验证字符串不为 null 且不为空白字符串(仅适用于 string 类型)

2. 集合检查

  • LeftAny: 验证集合不为 null 且包含至少一个元素(适用于 ICollection 实现)
  • RightAny: 验证数组不为 null 且包含至少一个元素(适用于 Array 类型)

3. 值比较

  • EqualValue: 验证值等于指定比较值
  • NotEqualValue: 验证值不等于指定比较值
  • GtValue: 验证值大于指定比较值
  • LtValue: 验证值小于指定比较值
  • GtOrEqualValue: 验证值大于或等于指定比较值
  • LtOrEqualValue: 验证值小于或等于指定比较值

使用场景

这个枚举可能用于:

  • 动态构建 LINQ 查询条件
  • 验证 API 请求参数
  • 构建灵活的过滤系统
  • 实现通用查询功能

每个枚举值都有详细的 XML 注释,说明了适用类型和等效的 C# 表达式,这有助于开发者正确使用这些条件。

评论加载中...