2017-06-06 36 views
0

我甚至不知道如何提出問題,如果有人想在閱讀後建議我會更新。試圖做一個子查詢返回LINQ查詢

從商業角度來看問題是我需要知道是否有任何停止(deliverys)過去爲它們生成了一個文件。生成此文件時,會創建日記條目,記錄類型爲40,日期以及匹配的ID號。

我有一個LINQ查詢在C#(6)Linq到實體。 我需要在返回字段或者計數或者只是返回true,如果另一個查詢找到任何東西。

這裏是查詢的一部分:

var stopDetails = (from d in dbContext.stop_details 
          join c in dbContext.customers on d.customer_id equals c.id 
          join name in dbContext.driver_details on d.assigned_driver_id equals name.ddp_driver_id 
          join journal in dbContext.stop_journals on d.id equals journal.stop_details_id 
          where (d.verified_ship_date >= startDate && d.verified_ship_date <= endDate) 
          select new 
          { 
           d.ship_date, 
           stopID = d.id, 
           d.verified_ship_date, 
           d.assigned_driver_id, 
           driverName = name.first_name + " " + name.last_name, 
           fullDriverInfo = d.assigned_driver_id + " - "+ name.first_name + " " + name.last_name, 
           d.cust_ref_1_BOL, 
           d.cust_ref_2_OrderNum, 
           d.cust_ref_3_stopID, 
           d.con_name, 
           d.con_address1, 
           d.con_address2 

我需要知道的是,如果有在stop_journal爲每個包含45 RECORD_TYPE和停止的任何記錄dateTimeRef ==的verified_ship_date 。

如果我不能在前端這樣想出來,我可能只是通過datagrid(發佈結果的地方)並逐步更新每一行。

這樣的僞代碼將是這樣的: 的每一行,如果有與stop_details_id匹配stopID而一個dateTimeRef == verified_ship_date和40 RECORD_TYPE然後設置FoundFlag =真

日記帳分錄

回答

0

您使用.Any()做的,如果存在,然後只是把你的查詢中您選擇:

FoundFlag = (from j2 in dbContext.stop_journals where j2.stop_details_id == d.id && 
      j2.dateTimeRef == d.verified_ship_date && j2.record_type == 40 select j2).Any() 
+0

完美 - 太感謝你了,我是在爲某種原因碼迷路。 –