1. 程式人生 > >Linq_根據條件查詢兩個表,並將返回不同型別的結果合併

Linq_根據條件查詢兩個表,並將返回不同型別的結果合併

var deliveryOrderDetail = from d in _context.DeliveryOrderDetails
                                          where d.DeliveryOrder_ID == deliveryId
                                          select d;
                var deliveryNotRelevantOrderDetail = from dond in _context.DeliveryOrderNotRelevantDetails
                                          where dond.DeliveryOrder_ID == deliveryId
                                          select dond;
                //  兩個表型別不一樣。 我轉換一下
                List<DeliveryOrderDetail> detail = new List<DeliveryOrderDetail>();
                foreach(var d in deliveryNotRelevantOrderDetail) {
                    detail.Add(new DeliveryOrderDetail {
                        DeliveryOrderDetail_ID = d.DeliveryOrderNotRelevantDetail_ID,
                        SAP_Description = d.SAP_Description,
                        SAP_Material_ID = d.SAP_Material_ID,
                        SAP_UOM = d.SAP_UOM,
                        OrderQty = d.OrderQty,
                        Reason = d.Reason,
                        Item = d.Item,
                        PickOperator = d.PickOperator
                    });
                }

                var oDetail = deliveryOrderDetail.Union(detail);