繁体   English   中英

向此 ef 核心查询添加连续计数

[英]Add consecutive count to this ef core query

我在 Entity Framework Core 中有以下查询,它报告给定日期之间按客户分组的销售额。

IEnumerable<SalesDataModel> currentSales =
(from s in sales
where s.Date >= [StartDate] && u.Date <= [EndDate]
join c in customers on s.Acct equals c.Account
group s by new { s.Name, c.City } into g
select new SalesDataModel { 
    CustName = g.Key.Name,
    City = g.Key.City,
    MaxBorrowed = g.Max(x => x.Price),
    Average = g.Average(x => x.Price),
    NumDays = 
        g.Sum(x => x.Price > 0 ? 1 : 0),
    ConsecutiveDays = //???
}).ToList();

基本上我想计算给定客户在连续两天或更长时间内购买的次数。 因此,从第 1 天开始,然后将其与第 2 天进行比较; 如果这两天的 Price > 0,则以 1 为单位迭代计数器。 然后用相同的标准检查第 2 天和第 3 天,并重复我为该客户所拥有的尽可能多的记录。 如果遇到零或 null 价格值,计数器不应重置为零,但它应该为下一个客户重置。

我发现这个 SO Post问了类似的问题,但必须有一种更简单的方法。 我正在使用 EF Core 5。

另外,完全公开,这篇文章是上一篇文章的延续。 由于这个问题的答案可能不像我希望的那么简单,所以第二篇文章似乎是更好的方法。

此查询将需要 SP 的 FromSqlRaw 执行才能使其工作。

暂无
暂无

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

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