在 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"
我从 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"