2015-12-06 2 views
1

Я хочу знать, как выбрать те записи, которых нет в другой таблице.Linq запись не в другой таблице

У меня есть запрос, чтобы показать все акции в период времени

var query = (from stk in ie.stocks 
         join s in ie.staffs on stk.stk_createby equals s.stf_id 
         where stk.stk_createdate >= startDate && 
         stk.stk_createdate <= endDate 
         select new 
         { 
          StockID = stk.stk_id, 
          RefNo = stk.stk_ref_id, 
          Weight = stk.stk_weight, 
          Grade = stk.stk_grade, 
          Remark = stk.stk_remark, 
          StaffName = s.stf_name 
         }).ToList(); 

А также у меня есть еще один запрос, чтобы показать все доставленные акции.

   var query2 = (from ol in ie.orderLists 
           join stk in ie.stocks on ol.ol_stockid equals stk.stk_id 
           join dl in ie.deliveries on ol.ol_dlyid equals dl.dly_id 
           join s in ie.staffs on stk.stk_createby equals s.stf_id 
           where dl.dly_delivery_date >= startDate && 
           dl.dly_delivery_date <= endDate 
           select new 
           { 
            StockID = stk.stk_id, 
            RefN = stk.stk_ref_id, 
            Weight = stk.stk_weight, 
            Grade = stk.stk_grade, 
            Remark = stk.stk_remark, 
            StaffName = s.stf_name 
           }).ToList(); 

Так что я хочу показать остаточный запас, который не доставляется. Как исключить весь запас в query2?

ответ

2

Попробуйте исключить метод.

экс)

var ret = query1.Except(query2); 
+0

Я попытался это раньше, но это показана ошибка, Query1 не содержит, кроме метода. –

+0

Определите тип данных и сравните их с исключением метода. См. Здесь https://msdn.microsoft.com/ko-kr/library/bb336390(v=vs.90).aspx –

Смежные вопросы