我用来过滤对象的代码如下:
var dynamicdataentrances = db.DynamicDataEntrances.OrderByDescending(d => d.ID)
.AsQueryable();
if (TypeID != null)
dynamicdataentrances =
dynamicdataentrances.Where(d => d.DetailPageID == TypeID).AsQueryable();
if (RegionID != null)
dynamicdataentrances =
dynamicdataentrances.Where(d => d.RegionID == RegionID).AsQueryable();
if (ShiftGroupID != null)
dynamicdataentrances =
dynamicdataentrances.Where(d => d.ShiftPlan.ShiftGroupID == ShiftGroupID)
.AsQueryable();
它工作没有任何问题。但是,根据“工作流状态”过滤对象不起作用。它的代码如下:
foreach (var wfs in workflowstates)
{
if (Request[wfs.ID.ToString()] != wfs.ID.ToString())
dynamicdataentrances =
dynamicdataentrances.Where(d => d.WorkflowStateRelation.WorkflowStateID
!= wfs.ID).AsQueryable();
}
如您所知,我使用复选框进行过滤;如果未选中 Workflow State 的复选框,我会得到 Workflow State 不等于未选中的对象。我调试了行、foreach 和 if 块是否工作正常,但查询没有相应地工作,它不断获取所有对象。这是一个错误还是我做错了什么?
如果我在工作流状态过滤之前将我的对象集合转换为List ,它可以正常工作。