2016-09-23 40 views
0

我從2個表中返回數據,其中一個包含停止信息,另一個包含傳遞信息。可以有一個停止沒有交付,或多次交付。在LINQ中使用IF類型語句來實體SELECT NEW子句C#

我回到了一個數據網格,我想要一列顯示記錄是停止還是停止交付。

如果記錄沒有遞送(爲空),我當前的查詢在deliveryID字段中返回'0'。

我想要添加另一個稱爲rowType的字段,如果deliveryID = 0,它將返回「Stop Only」的值,如果有其他內容,則返回「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(); 

我可以這麼做麼?

+2

像'ROWTYPE =((int)的sd.id?).HasValue? 「停止交貨」:「只停止」'也許? –

+0

我一直試圖做到這一點,但忘了投(int?),所以我的HasValue不會出現。謝謝夥伴...如果你想寫出來作爲答案,我會接受它。 –

回答

0

使用條件?操作和複製你的邏輯deliveryID

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