[英]Getting values querying from same table with LINQ
我有一張這樣的桌子:
+----+--------+----------+---------+-------------+
| ID | Codigo | Nombre | PadreID | CatalogosID |
+----+--------+----------+---------+-------------+
| 2 | KNW | KENWORTH | 0 | MAR |
| 3 | VLV | VOLVO | 0 | MAR |
| 4 | T60 | T600 | 2 | MOD |
| 5 | T68 | T680 | 2 | MOD |
| 6 | T88 | T880 | 2 | MOD |
| 7 | M43 | VNM 430 | 3 | MOD |
+----+--------+----------+---------+-------------+
首先,我想獲取我收到的參數的列表,因此在LINQ中,我執行以下操作:
var cr = _pService.Listar().Where(x => x.CatalogosID == Catalogo)
假設Catalogo = MOD
所以它獲得ID為4,5,6,7的值
一旦獲得它們,我想獲得PadreID = ID
值,因此我應該只將ID 2 and 3
值作為最終結果接收
如何使用LINQ進行此查詢? 有人可以幫我嗎? 我認為這是自我加入,但是與LINQ的加入非常令人困惑
如果他們的CatalogosID
不是“ MOD”,則如何獲取ID = 2和ID = 3的行。 另外,PadreID = ID沒有任何行。 請查看您的帖子和問題。
編輯
var idsWithMod = _p.service.Where(p => p.CatalogosID = Catalogo).Select(p => p.PadreID).ToList();
var result = _pservice.Where(p => idsWithMod.IndexOf(p.ID) != -1).ToList();
我在兩個查詢中寫得更加清楚。 如果需要,可以將它們合並。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.