如何申请Not in Linq?

时间:2018-09-20 10:11:44

标签: c# linq

我有两个表-OrderRequisition和Order。我可以使用linq查询显示OrderRequisition表中的所有记录:

var list = (from r in db.OrderRequisition 
          select new SalesOrderViewModel
                             {
                                 OrderId = r.OrderId ,
                                 OrderNo =  r.OrderNo 
                             }).ToList();

我只想显示OrderRequisition表中未包含在Order表中的那些记录。任何线索

谢谢 帕塔

1 个答案:

答案 0 :(得分:2)

一种简单的方法可能会足够有效,因为您的数据库能够对其进行优化:

var list = db.OrderRequisition
  .Where(or => !db.Order.Any(o => o.OrderId == or.OrderId))
  .ToList();

(跳过了SalesOrderViewModel初始化,因为与该问题无关)