Запитване на таблица чрез асоцииране с помощта на LINQ към SQL vb.net

Имам 3 мас

CustNameTbl

_________________
| ID | CustName |
| 1  | Jel Farm |
| 2  | TSL. TRD.|
| 3  | YAZAKI   |
| 4  | TAILIN   |

ItemNameTbl

_________________
| ID | ItemName |
| 1  |    HSC   |
| 2  |    Pad   |
| 3  |Partition |
| 4  | B002001  |
| 5  |Box for B3|
| 6  |High Speed|

ItemInfoTbl

__________________________________________________
| ID | CustId | ItemId |  Qty  | Price | Remarks |
| 1  |   1    |   1    |   50  |   2   |         |
| 2  |   1    |   2    |  200  |   1   |  Set A  |
| 3  |   1    |   3    |   10  |   5   |  Set B  |
| 4  |   4    |   5    |   15  |   2   |         |
| 5  |   4    |   6    |   10  |   1   |         |
| 6  |   2    |   4    |  150  |   3   |         |

Имам две АСОЦИАЦИИ

  1. CustNameTbl като родител ItemInfoTbl като дете

  2. ItemNameTbl като родител ItemInfoTbl като дете

Използване на Linq към Sql, Как да направите заявка за ItemInfoTbl, използвайки CustNameTbl като WHERE CLAUSE и имайки резултат, при който стойността на CustId и ItemId в ItemInfoTbl ще получи данни в другата таблица (CustNameTbl,ItemNameTbl)

Като този:

____________________________________________________
| ID | CustId |  ItemId  |  Qty  | Price | Remarks |
| 4  | TAILIN |Box for B3|   15  |   2   |         |
| 5  | TAILIN |High Speed|   10  |   1   |         |

Но кодът ми не получи това, което исках

Dim CustName As String = "TAILIN"
Using CustItem As New CustItemDataContext
        Dim resultCustItem = From result In CustItem.ItemInfoTbls
                             Where result.CustNameTbl.CustName = CustName
        DataGridView1.DataSource = resultCustItem
End Using

Някаква идея или връзка, за да започна. Благодаря ви и съжалявам за моя английски.


person user2184608    schedule 10.06.2016    source източник


Отговори (1)


Не съм тествал, но мога да ви дам идея.

Dim result = from t in  YourDatabase.ItemInfoTbl
                        join p in YourDatabase.ItemNameTbl on t.ItemID equals p.ID 
                        join c in YourDatabase.CustNameTbl on t.CustID  equals c.ID            
Where c.CustName = CustName
                        select new
                        {
                            t.ID,
                            t.CustId,
                            t.ItemID,
                            t.Qty,
                            t.Price
                         };

Полезен източник LINQ join multi table

person Sami    schedule 10.06.2016
comment
Така че това, което JOIN може да направи. Благодаря ти за помощта. Четох join преди, просто не знам как да го използвам. - person user2184608; 10.06.2016