// 提取并移除Keyword规则,因为CodeCreater实体中没有Keyword属性
var keyword = "";
if (request.FilterGroup != null && request.FilterGroup.Rules != null)
{
var keywordRule = request.FilterGroup.Rules.FirstOrDefault(p => p.Field.ToLower() == "Keyword".ToLower());
if (keywordRule != null)
{
request.FilterGroup.Rules.Remove(keywordRule);
keyword = keywordRule.Value?.ToString()?.Trim() ?? "";
}
}
Expression<Func<CodeCreater, bool>> predicate = FilterService.GetExpression<CodeCreater>(request.FilterGroup);
// 如果有关键词,则在Code和Name字段中搜索
if (!keyword.IsNull())
{
predicate = predicate.And(p => p.Code.Contains(keyword) || p.Name.Contains(keyword));
}