如何在 LINQ 中获取 5 天内未下订单的所有客户

  • 本文关键字:客户 LINQ 获取 c# linq
  • 更新时间 :
  • 英文 :


这是我需要的不同版本,但这样我就不会违反保密协议。我需要的代码应该非常相似。数据库本质上是一个客户表(名字、姓氏、电话号码、客户id等)、一个订单表(产品名称、产品id、产品成本等)……这个表不太重要),中间的表保存每次购买的详细信息(客户id、产品id、购买日期等)。我试过的代码如下:

var users = _context.Customers
.Include(c => c.orders)
.Where(c => c.orders == 0)
.Where(o => o.orders
.OrderBy(o => o.DateBought)
.Last().DateCreated <= DateTime.Now.AddDays(-5))
.AsNoTracking()
.ToListAsync();

我实在想不出其他的事情了,如果你能帮助我,我将不胜感激。这是我工作上的事,我老板不帮我,所以我不能问他。需要注意的是,我不允许使用连接(LINQ连接)。我不知道为什么,但他真的坚持认为它必须与.include,而不是其他。除了客户,我什么都不需要。

谢谢!

我会尝试简单地使用Any的订单与相应的谓词(虽然不确定您的ORM和数据库提供商将能够翻译这一点):

var users = _context.Customers
.Where(c => !c.orders.Any(o => o.DateCreated > DateTime.Now.AddDays(-5))
.AsNoTracking()
.ToListAsync(); 

最新更新