我想轉換我的SQL到LINQ查詢的一個,但我無法得到需要的結果,我需要。任何人都可以向我建議我應該怎麼做?
SQL查詢:
SELECT AssetTagging.AssetID, AssetTagging.AssetDescription, [Return].RequestStatus
FROM AssetTagging
LEFT OUTER JOIN [Return] ON AssetTagging.AssetID = [Return].AssetID
LEFT OUTER JOIN Issue ON AssetTagging.AssetID = Issue.AssetID
WHERE (Issue.AssetID IS NULL) OR ([Return].RequestStatus = 'Approved')
LINQ查詢我使用的是:
var result = (from at in db.AssetTagging.AsEnumerable()
join r in db.Return on at.AssetID equals r.AssetID
orderby at.AssetID
where !db.Issue.Any(issue=>issue.AssetID==at.AssetID) || r.RequestStatus=="Approved"
select new globalTestModel
{
model1=at
}).ToList();
//I know that in Linq query I'm using Inner join instead of Left Join,but i'm getting error if i use left join instead of inner join?
我在做什麼錯?
任何建議獲得像Linq希望的查詢查詢?
資產標籤表:
問題表:
返回表:
所需的輸出:
的可能重複[LINQ to SQL的左外連接(http://stackoverflow.com/questions/700523/linq-to-sql-left-outer-join) – vittore 2015-02-06 15:05:22
@vittore:但是什麼鏈接你分享我前面提到的轉換我的內部連接到左外部連接,但它給錯誤像對象引用未設置爲一個對象的實例。我已經改變它作爲'加入r在db.Return at.AssetID等於r。在t.DefaultIfEmpty()'和在哪裏條件'rt.RequestStatus ==「Approved」''rt中將AssetID轉換爲t。'我認爲條件給出了錯誤 – 2015-02-06 15:18:10
我沒有看到你引用鏈接的地方註釋。來自鏈接主題的示例告訴您使用'將db.Return加入at.AssetID等於r.AssetID加入到joinedReturns'中。 – vittore 2015-02-06 16:38:15