【发布时间】:2018-03-22 17:10:20
【问题描述】:
我有谓词构建器,它具有谓词和内部谓词,并根据条件构建动态过滤器,假设我选择一个部门,在该部门下我得到员工列表,一旦我得到员工列表,我需要为属于所选部门的每个员工加载各自的记录。
实施很久以前就已经完成,如果部门没有太多员工,它可以正常工作,一旦超过 500 或 1000,谓词构建器就会导致堆栈溢出。请参阅我的代码 sn-p - 我使用的是 .net framework 4.5.2。
使用in循环在这一行分配给内部谓词时出现stackoverflow异常,当记录超过1000或500时,它会根据员工记录循环。
Expression<Func<EmployeeTable, bool>> predicate = PredicateBuilder.True<EmployeeTable>();
var innerPredicate = PredicateBuilder.False<EmployeeTable>();
case FilterBy.EmployeeName:
if (!isEmpNameFilterExists)
{
foreach (string empName in item.FieldCollection)
{
innerPredicate = innerPredicate.Or(x => x.Name.Equals(empName,
StringComparison.OrdinalIgnoreCase));
}
predicate = predicate.And(innerPredicate.Expand());
}
break;
【问题讨论】:
标签: entity-framework predicatebuilder