我有一个从EF中提取的Orders
的集合。每个Order
有订单日期:Linq查询按日期统计和分组项目
public class Order {
public DateTime Date { get; set; }
public int Id { get; set; }
}
我希望能够运行一个查询在特定日期范围返回订单的数量每一天。查询方法应该是这个样子:
public class ICollection<OrderDateSummary> GetOrderTotalsForDateRange(DateTime startDate, DateTime endDate) {
var orderDateSummary = Set.SelectMany(u => u.Orders) // ..... grouping/totalling here?!
return orderDateSummary;
}
有关信息,Set
居然是返回一个用户聚合根的存储库的一部分,所以Set
类型是DbSet<User>
我坚持上分组和汇总的位Orders
可从SelectMany
方法查询。
的OrderDateSummary类的样子:
public OrderDateSummary {
DateTime Date { get; set; }
int Total { get; set; }
}
因此,输出的2016年1月1日开始日期和2016年3月1日结束日期看起来是这样的:
Date Total
===================
01/01/2016 10
02/01/2016 2
03/01/2016 0
04/01/2016 12
什么是你的问题?无法看到问题或可能发生的任何错误。 – HimBromBeere
var x = orderDateSummary = Set.SelectMany(u => u.Orders).where(x => x.startdate> = sdate && x.Enddate <= edate).select(x => x.total) –
您是否还需要零行'03/01/2016 - 0'? –