我甚至不确定如何提出问题,如果有人想在阅读后提出建议,我会更新。
从业务角度来看问题是我需要知道过去是否有任何止损(交付)已经为它们生成了文件。生成此文件时,将创建日记帐分录,其记录类型为40,日期以及匹配的ID号。
我在C#(6)Linq中有一个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中的每个记录都包含record_type为45且dateTimeRef == verified_ship_date的记录。
如果我不能像这样在前端弄清楚,我可能会直接浏览数据网格(结果发布的地方)并以这种方式更新每一行。
所以伪代码会是这样的: 对于每一行,如果有一个日记帐分录,其中stop_details_id匹配stopID和dateTimeRef == verified_ship_date并且record_type为40,则设置FoundFlag = true
乔
答案 0 :(得分: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()