1
我試圖SQL查詢轉換爲LINQ但之後寫入查詢無法從結果集LINQ LEFT JOIN查詢
SELECT T.ServiceOrderNo,T.STATUS, T.SubStatus,T.orderVersion,T.OrderDate
,@pid, T.EventID, 'FOI'
FROM #temp1 T
LEFT JOIN Tbl_Service_Order_Progress O ON T.ServiceOrderNo DATABASE_DEFAULT = O.ServiceOrderNo
AND O.PARENTID = @pid
AND O.ServiceOrderType = 'FOI'
WHERE O.ServiceOrderNo IS NULL
上面的查詢獲取記錄下我想在LINQ
var lstInsertFOI = (from i in lstFOI
join j in lstSOP on i.fulfilmentOrderItemIdentifier equals j.ServiceOrderNo into res
from subRight in res.DefaultIfEmpty()
where subRight.ParentId == parentId && subRight.ServiceOrderNo == null && subRight.ServiceOrderType.Equals("FOI")
select new
{
ServiceOrderNo = subRight.ServiceOrderNo == null ? i.fulfilmentOrderItemIdentifier : subRight.ServiceOrderNo,
EventStatus = i.status,
EventSubStatus = i.subStatus,
OrderVersion = i.orderVersion,
EVENTRECEIVEDDATE = i.orderDate,
ParentId = parentId,
EventID = i.eventID,
ServiceOrderType = "FOI",
}).ToList();
以上LINQ查詢不會獲取預期結果,該結果應返回lstFOI列表中的記錄數,但不返回任何記錄。 linq查詢是否正確?
好像你被錯誤地連接表。你在使用上下文實體還是使用兩個已填充的集合?你能否提供使用過的實體類定義? – Fragment
lstFOI是List的對象,其中OrderItemDetails是數據庫表,lstSOP是List 的對象,其中TBL_SERVICE_ORDER_PROGRESS是db表,並且fulfilmentOrderItemIdentifier與ServiceOrderNo相同。 –
mahesh