下面有两个linq查询,它们返回完整的差异结果,第一个查询返回4条记录,第二条返回72条记录。我认为他们是一样的。谁能解释为什么他们会返回差异记录集。谢谢你的帮助。
void Main()
{
var q1 = from c in Customers
where !c.Orders.Any(o => o.OrderDetails.Sum(od => od.UnitPrice * od.Quantity) < 1000)
select new {c.CustomerID, c.ContactName};
q1.Dump();
var q2 = from c in Customers
where c.Orders.Any(o => o.OrderDetails.Sum(od => od.Quantity * od.UnitPrice) >= 1000)
select new {c.CustomerID, c.ContactName};
q2.Dump();
}
答案 0 :(得分:11)
换句话说,假设一个客户订购总价低于1000的订单,另一个订单总价高于1000.由于订单较小,客户记录不会包含在第一个结果集中,但由于订单较大,将包含在第二个结果集中。