我對C#和Linq很新,我在查詢兩個表的匹配值時遇到了一些麻煩。如何查詢兩個表與linq和C#匹配的值?
作爲實習生,我們使用工作單元庫模式。例如,要查詢一個sql表,我會使用這個linq表達式:_entities.Atable.Where(x => x.Col1 == col1 && x.Col2 == col2)
。變量_entities
表示數據庫模型中所有表的接口。
假設我有兩個表Table1
和Table2
。下面是每個表中的列:
Table1: Col1, Col2, colA, ColB
Table2: Col1, col2, ColC, ColD
這是我想做些什麼:通過匹配兩個變量,col1和col2上,與col1和col2的
查詢
Table1
。例如,
List1 = _entities.Table1.Where(x => x.Col1 == col1 && x.Col2 == col2).ToList()
然後,查詢
Table2
任何記錄,其中Table2.Col1
和Table2.Col2
匹配List1.Col1
和List1.Col2
。這些結果也可以存儲在列表中,List2
。例如,
List2 = _entities.Table2.Where(x => x.Col1 == List1.Col1 && x.Col2 == List1.Col2).ToList()
- 然後,使第三列表,
List3
,包含從Table1
任何項目未從Table2
匹配項最後,我想有一個列表Table2
與Table1匹配的項目Col1
和Col2
。以及Table2
中沒有匹配的剩餘物品Table1
的清單。
大多數情況下,我被困在第三個要點上,但我願意接受任何建議和改進。
最後,我不知道這是否可能,我想將兩個列表合併爲一個。由於它們是不同的類型,我不確定這將如何工作。
我希望這一切都有道理。我一直試圖繞過它一段時間,但我仍然難以理解如何創建查詢。我也玩過Except()
和Intersect()
,但沒有太多的運氣。
任何幫助將不勝感激。
嘗試'差異()'而不是'除()'? – Monkpit
好的,我會開始研究它。謝謝。 – navig8tr
你想要做一個左內連接嗎? –