在 linq to entities SELECT NEW 子句 C# 中使用 IF 类型语句

using a IF type statement in a linq to entities SELECT NEW clause C#

我从 2 个表返回数据,一个包含停止信息,另一个包含交付信息。可以有一个没有交付的停止,或者有多个交付。

我正在返回数据网格,我想要一个列来显示记录是停运还是停运。

如果记录没有交付(为空)我当前的查询returns deliveryID 字段中的“0”。

我想添加另一个名为 rowType 的字段,如果 deliveryID = 0,它 returns 的值为 "Stop Only",如果有的话,它 returns "Stop with Delivery" 下面的代码可以正常工作,但没有新字段。

  var combinedEvents = (from d in dbContext.stop_details
                              join s in dbContext.stop_event on d.id equals s.stop_id into Inners
                              from sd in Inners.DefaultIfEmpty()
                              where (d.ship_date >= startDate && d.ship_date <= endDate)
                              select new
                              {
                                  deliveryID = (int?)sd.id ?? 0,
                                  stopID = d.id,
                                  d.ship_date,
                                  d.cust_ref_1_BOL,
                                  d.cust_ref_2_OrderNum,
                                  sd.received_by
                                  }).ToList();

我可以这样做吗?

使用条件 ? 运算符并复制 deliveryID 的逻辑:

rowType = ((int?)sd.id).HasValue ? "Stop With Delivery" : "Stop Only"