2017-06-06 62 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

完美 - 太感谢你了,我是在为某种原因码迷路。 –