由於我們的數據庫設計不佳,我必須編寫一個複雜的查詢來獲取我的數據。Linq從表中獲取數據,但如果在另一個表中則沒有?
我需要從table_1獲取所有有效數據。在其他作品中,我需要獲取我的table_1的每個有效行。我的table_1中沒有簡單的有效或無效列。這些信息存儲在table_2中。表2包含具有錯誤消息的所有無效行。
假設我需要檢索的數據是訂單。對於我的示例,請注意OrderNo是訂單的編號。所以我可以在table_1中有多個行,版本的這個訂單,而且我也可以在table_2中有這個訂單的多行錯誤。所以我也必須使用一個版本號。
我已經嘗試過這樣的:
table_1.Where(y => (y.OrderNo == "1234"));
table_2.Where(y => (y.OrderNo == "1234")).Select(y => y.Version).Distinct();
而且我覺得我需要做這樣的事情:
var errorList = table_2.Where(y => (y.OrderNo == "1234")).Select(y => y.Version).Distinct();
table_1.Where(y => (y.OrderNo == "1234" && y.Version.NOT_IN(erriList)));
你能幫助我嗎?
聽起來很正常,不錯設計 – Mick
在table1和table2之間是否有外鍵? –
你可以通過連接來完成。左外連接進行連接,幷包括不在A an中的項目在B中。請參閱網頁:https://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b – jdweng