CommonCRUDServiceTEntity, TKey, TInput, TFilterApplyFilter Method

应用 CommonFilter 过滤器。

Definition

Namespace: QuickAdmin.Service.CRUD
Assembly: QuickAdmin.Net (in QuickAdmin.Net.dll) Version: 2.0.13
C#
protected override ISelect<TEntity> ApplyFilter(
	ISelect<TEntity> iSel,
	TFilter filter
)

Parameters

iSel  ISelectTEntity
ISelect 对象。
filter  TFilter
过滤器。

Return Value

ISelectTEntity
ISelect 对象。

Remarks

供要应用指定过滤条件的相关同步方法调用。
TFilter 中除过基类 CommonFilter 自带的,还有其它的过滤条件, 那么派生类必须重写此方法进行处理,以确保能构造正确的过滤条件。

方法内首先调用了 SetCategoryFilter(ISelectTEntity, TFilter) 处理类别过滤条件。
出现一下任一情况,iSel 将被追加一个不可能成立的条件 Where("1=2") (将使查询结果为空列表):
  • SetCategoryFilter(ISelectTEntity, TFilter) 返回了 false
  • 类型 TEntity 里没有与 filter 里的数据项目名称(DataItem1Name/DataItem2Name/EnumItemName)同名的公共属性。 属性的查找是区分大小写的。
  • 属性类型不支持比较(不是字符串/数值/枚举/日期时间等类型)。
  • 属性类型与过滤值不匹配,例如查询数值类型字段,值却为非数值字符串。
  • 属性类型与比较运算符不匹配,例如查询字符串类型字段,运算符却为 GreaterThan
对于具体的实体的服务,TEntityTFilter 将是明确的,若不想使用基类的通用处理方案,对此方法可进行完全重写。

See Also