当不引用子记录时,这非常有用。
我收到错误:无法隐式转换类型' System.Collections.Generic.IEnumerable'到了布尔'
在:
.Select((g, i) => new
提前致谢!
var weekGroups = item.TaskActions
.All(z => z.TaskActionDurations
.Where(c => c.TimeStart >= beginReportDate)
.OrderByDescending(c => c.TimeStart)
.Select(p => new
{
TaskActionDurations = p,
Hours = p.Hours,
Year = p.TimeStart.Value.Year.ToString(),
Week = System.Globalization.CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(
p.TimeStart.Value,
System.Globalization.CalendarWeekRule.FirstFourDayWeek,
System.DayOfWeek.Monday)
})
.GroupBy(x => new { x.Year, x.Week })
.Select((g, i) => new
{
WeekGroup = g,
WeekNum = i + 1,
Year = g.Key.Year,
CalendarWeek = g.Key.Week,
Count = g.Count(),
Hours = g.Sum(s => s.Hours),
WorkOrderHours = g.Where(w => w.TaskActionDurations.TaskAction.Task.WorkOrders.Any())
.Sum(s => s.Hours)
}));
答案 0 :(得分:0)
这种情况最有可能发生,因为你并没有为多个结果排队等待所有这些因素。
将其切换,以便提供结果,而不是仅仅期望一个输出。
编辑:你可能想尝试选择而不是全部,你应该至少尝试做一些关于为什么会发生这种情况的研究。
答案 1 :(得分:0)
All
接受一个谓词函数,给定一个参数返回BOOL
,所以你的z
函数返回一个IEnumerable
的匿名类型,也许你想要Select
在你的第一个陈述中,而不是All
。
答案 2 :(得分:0)
.All
期待Func<T,bool>
,但是你给它一个lambda表达式,返回IEnumerable
个匿名类。您尝试完成的工作并不明显,但您可能希望将All
更改为SelectMany
。这会将您在lambda中创建的IEnumerable
缩小为一个IEnumerable
,而使用Select
则会为您提供IEnumerable<IEnumerable<anonymousClass>>