自定义Linq查询

时间:2012-04-19 06:34:23

标签: c# linq

我的收藏品看起来像这样

enter image description here

我需要获得所有那些其选择的SeqNo大于其交付状态的订单。业务规则是这些操作基于其SeqNo而发生,并且在获取之前没有订单号应该交付。

在给定的示例中,我应该获得2号订单,因为它在被提取之前提供。 感谢

1 个答案:

答案 0 :(得分:5)

听起来你需要这样的东西 - 我已经将查询部分分开以便于阅读:

var pickups = orders.Where(order => order.Status == Status.Pick);
var deliveries = orders.Where(order => order.Status == order.Deliver);
var query = from pickup in pickups
            join delivery in deliveries on pickup.OrderId equals delivery.OrderId
            where pickup.SeqNo > delivery.SeqNo
            select pickup.OrderId;