使用 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 | |
我有两个协会
CustNameTbl 作为父项 ItemInfoTbl 作为子项
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
我有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 | |
我有两个协会
CustNameTbl 作为父项 ItemInfoTbl 作为子项
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