使用 LINQ to SQL vb.net 通过关联查询 table

Querying table through association using LINQ to SQL vb.net

我有3个table

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,如何使用 CustNameTbl 作为 WHERE CLAUSE 查询 ItemInfoTbl 并得到 ItemInfoTbl 中 CustId 和 ItemId 的值将在另一个 table 中获取数据的结果(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

任何想法或 link 让我开始。谢谢,对不起我的英语。

没有测试,但可以给你一个想法。

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