簡體   English   中英

使用LINQ從同一表獲取值查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM