繁体   English   中英

获取linq查询上下文之外的count变量

[英]Get the count variable outside the linq query context

如何将计数分配给totalCases变量?

我只是想知道我是否可以做以下事情,

 let count = DbContext.Set<CaseAction>().Count(c => c.IsToDo == isToDo) into totalCases 

用let声明的变量是否可以在查询上下文之外访问?

 public PagedList GetCatTaskByCompanyId(int companyId, int? isToDo, int pageIndex, int pageSize)
            {
                var totalCases = 200;
                var caseModels = (from casemodel in DbContext.Set<CaseAction>()
                                  where casemodel.IsToDo == isToDo
                                  let count = DbContext.Set<CaseAction>().Count(c => c.IsToDo == isToDo)
                                  orderby casemodel.TaskCreatedOn descending
                                  select new CaseDetailsModel
                                  {
                                      TaskId = casemodel.Id,
                                      CompanyId = companyId,
                                      Title = casemodel.Title,
                                      TaskTypeId = casemodel.TaskTypeId,
                                      TaskTypeGroupId = casemodel.TaskTypeGroupId,
                                      CaseSubject = casemodel.TaskName,
                                      CurrentComment = casemodel.CurrentComment,
                                      IsPinned = casemodel.Pinned,
                                      CurrentActionTypeId = casemodel.CurrentActionTypeId,
                                      CurrentActionTypeName = casemodel.CurrentActionTypeName,
                                      NextActionDueOn = casemodel.NextActionDueOn,
                                      CurrentActionCreatedOn = casemodel.CurrentActionCreatedOn,
                                      CurrentActionAssignedTo = casemodel.AssignedToStaffName,
                                      NextActionTypeName = casemodel.NextActionTypeName,
                                      ActionCount = casemodel.ActionCount
                                  }).Skip(pageIndex * pageSize)
                                    .Take(pageSize)
                                    .ToList();

                return new PagedList
                {
                    Data = caseModels,
                    PageIndex = pageIndex,
                    PageSize = pageSize,
                    Count = totalCases
                };
            }

删除let行,也删除totalCases

当返回数据时,只需调用Count() (将谓词传递到列表中)即可。

IE

 return new PagedList
                {
                    Data = caseModels,
                    PageIndex = pageIndex,
                    PageSize = pageSize,
                    Count = caseModels.Count(c => c.IsToDo == isToDo)
                };

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM