【发布时间】:2020-07-27 14:12:18
【问题描述】:
我正在实施 asp.net core 3.1 项目。在我的控制器中,我有一个如下所示的 linq 查询,并且没有定义 inprocessapicount 和pendingcount 来计算相关金额的计数,它工作正常,但是在选择部分将它们添加到申请者查询后,申请者返回 null 并且错误是:.Count(a => a.requestStatus == "bb") 无法翻译。以可以翻译的形式重写查询,或者通过插入对 AsEnumerable()、AsAsyncEnumerable()、ToList() 或 ToListAsync() 的调用来显式切换到客户端评估。如果有人建议我解决方案,我将不胜感激。
var applicants = (from t1 in _context.VwDesk
let tg = new {
itemID = t1.ItemId,
applicantID = t1.ApplicantId,
applicantName = t1.ApplicantName,
gateName =t1.GateName,
requestStatus = t1.LastReqStatus
}
group tg by new { tg.requestStatus,tg.itemID ,tg.applicantID, tg.applicantName} into ApiAppGp
select new
{
applicantName = ApiAppGp.Key.applicantName,
itemname = ApiAppGp.Key.itemID,
itemcount =ApiAppGp.Count(),
inprocessapicount = ApiAppGp.Where(a => a.requestStatus == "bb").Count(),
pendingapicount = ApiAppGp.Where(a => a.requestStatus == "aa").Count()
}).ToList();
我想要的是:数据库中有一些申请人,每个申请人可能有多个或零个请求。 (每个申请人订购多个或零个 itemID)每个申请人都需要获得一些物品(itemID),并且这些物品中的每一个都有 requeststatus =="aa" 或 requeststatus =="bb" 或没有其中的状态案例是“一般”。现在我想了解,根据他们订购的所有ItemId,每个申请人的itemID有多少个requeststatus=="aa",每个申请人的itemID有多少个requeststatus=="bb"。
【问题讨论】:
-
“在选择部分将它们添加到我的查询后” - 你能显示失败的代码,而不是工作的代码吗?
标签: c# linq asp.net-core