stop_ids = [stop.stop_id for stop in stops]
for stop_id in stop_ids:
if prefix in stop_id:
pass
我知道它与返回x有关。我尝试返回是asQueryable但这没有用。如何让我的声明返回x?
答案 0 :(得分:0)
x是IQueryable<T>
,其中T
是具有ClientID
,ReviewID
,DepartmentID
,DepartmentName
和{{1}的匿名类型方法。
在某些时候,您需要Amount
,select new DepartmentBreakdownReport(…)
和select new DepartmentBreakdownReport{…}
或.Select(something => new DepartmentBreakdownReport(…))
。 (这些都是真的。
然后,它会为您提供.Select(something => new DepartmentBreakdownReport{…})
,因为它选择的类型为IQueryable<DepartmentBreakdownReport>
。
另请注意,代码中的代码DepartmentBreakdownReport
等有效地无效;它会创建一个新查询,但之后永远不会使用或甚至触摸新查询。
答案 1 :(得分:0)
我之前的评论意味着您要创建(并返回)DepartmentBreakdownReport
的实例,而不是匿名类型。
return x.Where(r => r.ReviewID == 37)
.GroupBy(r => new { r.DepartmentID, r.ReviewID, r.ClientID })
.Select(g => new DepartmentBreakdownReport
{
ClientID = g.Key.ClientID,
ReviewID = g.Key.ReviewID,
Dept = g.Max(d => d.DepartmentName),
Amount = g.Sum(d => d.Amount)
})
.OrderBy(r => r.Dept);
我根据个人喜好稍微重新排序了查询,但它应该产生相同的结果。
此外,我不知道您是否必须在此结束时添加AsQueryable()
...