网站首页 网站源码
namespace Dpz.Core.Infrastructure.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,
}
上述代码定义了一个名为 FilterCondition
的枚举类型,位于 Dpz.Core.Infrastructure.ExpressTreeQuery
命名空间中。这个枚举的主要功能是表示在请求参数中需要达成的各种条件。每个枚举值对应一种特定的过滤条件,通常用于数据查询或验证的场景。以下是对每个枚举值的详细解释:
NotNull: 表示该值必须不为 null
。适用于需要确保某个对象存在的情况。
NotNullOrEmpty: 表示该值必须不为 null
且不为空字符串(即 ""
)。这个条件仅适用于 string
类型,确保字符串有实际内容。
NotNullOrWhiteSpace: 表示该值必须不为 null
,不为空字符串,并且不只包含空格。这个条件同样仅适用于 string
类型,确保字符串中有可见字符。
Any: 表示集合中必须存在至少一个元素。这个条件要求类型必须继承自 ICollection
,用于检查集合的非空状态。
EqualValue: 表示该值必须等于特定的值。用于精确匹配的场景。
NotEqualValue: 表示该值必须不等于特定的值。用于排除特定值的情况。
GtValue: 表示该值必须大于特定的值。适用于数值比较。
LtValue: 表示该值必须小于特定的值。适用于数值比较。
GtOrEqualValue: 表示该值必须大于或等于特定的值。适用于数值比较。
LtOrEqualValue: 表示该值必须小于或等于特定的值。适用于数值比较。
这个枚举类型提供了一组标准化的条件,用于在数据查询或验证过程中对输入参数进行过滤和验证。通过使用这些条件,开发人员可以更清晰地表达对数据的要求,从而提高代码的可读性和可维护性。