根据另一个Table的Id显示相关记录
Show related records according to the Id from another Table
在我的 ASP.NET MVC 应用程序中,我使用视图模型创建了一个 HTML Table。
为此,我编写了一个查询,仅显示 ReOrderQty
为 !=0 且 AvaQty
小于 ReOrderQty
.
的数据
List < RecognizedPartsViewModel > Reco = new List < RecognizedPartsViewModel > ();
var rData = (from i in db.InventoryMain
join p in db.PartCategory on i.PartCatogary equals p.Id
where i.ReOrderQty != 0 && i.AvaQty <= i.ReOrderQty && i.PartCatogary != 0
select new RecognizedPartsViewModel {
Id = i.Id,
PartNo = i.PartNo,
Description = i.PartDescription,
Model = i.PartModel,
AvaQty = i.AvaQty,
ReOrderQty = i.ReOrderQty,
PartCato = i.PartCatogary,
ABCD = i.A_B_C_D_Category
}).ToList();
到目前为止,table 数据正在根据查询显示。
还有另一个 table,我根据 PartId
存储订单。所以我想在同一 HTML Table.
的另一列上显示该数据
我可以通过加入 join ord in db.OrderTable on i.Id equals ord.PartNo_Id
来获取这些详细信息
但是当它出现时,结果只显示仅包含 OrderTable
的 PartNumbers。
这就是我提到的修改方式。
List < RecognizedPartsViewModel > Reco = new List < RecognizedPartsViewModel > ();
var rData = (from i in db.InventoryMain
join p in db.PartCategory on i.PartCatogary equals p.Id
join ord in db.OrderTable on i.Id equals ord.PartNo_Id
where i.ReOrderQty != 0 && i.AvaQty <= i.ReOrderQty && i.PartCatogary != 0
select new RecognizedPartsViewModel {
Id = i.Id,
PartNo = i.PartNo,
Description = i.PartDescription,
Model = i.PartModel,
AvaQty = i.AvaQty,
ReOrderQty = i.ReOrderQty,
PartCato = i.PartCatogary,
ABCD = i.A_B_C_D_Category,
PastOrders = "Order Qty: " + ord.OrderQty
}).ToList();
所以,当这像我之前说的那样不显示每条记录时,它只显示 ordertable
中的记录。
那么我如何才能在同一个视图中显示这些 table 而不会丢失我的主要要求?
那就是
left outer join
var rData = (from i in db.InventoryMain
join p in db.PartCategory on i.PartCatogary equals p.Id
join ord in db.OrderTable on i.Id equals ord.PartNo_Id into leftjoin
from order in leftjoin.DefaultIfEmpty()
where i.ReOrderQty != 0 && i.AvaQty <= i.ReOrderQty && i.PartCatogary != 0
select new RecognizedPartsViewModel {
Id = i.Id,
PartNo = i.PartNo,
Description = i.PartDescription,
Model = i.PartModel,
AvaQty = i.AvaQty,
ReOrderQty = i.ReOrderQty,
PartCato = i.PartCatogary,
ABCD = i.A_B_C_D_Category,
PastOrders = "Order Qty: " + order?.OrderQty ?? string.Empty
}).ToList();
在我的 ASP.NET MVC 应用程序中,我使用视图模型创建了一个 HTML Table。
为此,我编写了一个查询,仅显示 ReOrderQty
为 !=0 且 AvaQty
小于 ReOrderQty
.
List < RecognizedPartsViewModel > Reco = new List < RecognizedPartsViewModel > ();
var rData = (from i in db.InventoryMain
join p in db.PartCategory on i.PartCatogary equals p.Id
where i.ReOrderQty != 0 && i.AvaQty <= i.ReOrderQty && i.PartCatogary != 0
select new RecognizedPartsViewModel {
Id = i.Id,
PartNo = i.PartNo,
Description = i.PartDescription,
Model = i.PartModel,
AvaQty = i.AvaQty,
ReOrderQty = i.ReOrderQty,
PartCato = i.PartCatogary,
ABCD = i.A_B_C_D_Category
}).ToList();
到目前为止,table 数据正在根据查询显示。
还有另一个 table,我根据 PartId
存储订单。所以我想在同一 HTML Table.
我可以通过加入 join ord in db.OrderTable on i.Id equals ord.PartNo_Id
来获取这些详细信息
但是当它出现时,结果只显示仅包含 OrderTable
的 PartNumbers。
这就是我提到的修改方式。
List < RecognizedPartsViewModel > Reco = new List < RecognizedPartsViewModel > ();
var rData = (from i in db.InventoryMain
join p in db.PartCategory on i.PartCatogary equals p.Id
join ord in db.OrderTable on i.Id equals ord.PartNo_Id
where i.ReOrderQty != 0 && i.AvaQty <= i.ReOrderQty && i.PartCatogary != 0
select new RecognizedPartsViewModel {
Id = i.Id,
PartNo = i.PartNo,
Description = i.PartDescription,
Model = i.PartModel,
AvaQty = i.AvaQty,
ReOrderQty = i.ReOrderQty,
PartCato = i.PartCatogary,
ABCD = i.A_B_C_D_Category,
PastOrders = "Order Qty: " + ord.OrderQty
}).ToList();
所以,当这像我之前说的那样不显示每条记录时,它只显示 ordertable
中的记录。
那么我如何才能在同一个视图中显示这些 table 而不会丢失我的主要要求?
那就是
left outer join
var rData = (from i in db.InventoryMain
join p in db.PartCategory on i.PartCatogary equals p.Id
join ord in db.OrderTable on i.Id equals ord.PartNo_Id into leftjoin
from order in leftjoin.DefaultIfEmpty()
where i.ReOrderQty != 0 && i.AvaQty <= i.ReOrderQty && i.PartCatogary != 0
select new RecognizedPartsViewModel {
Id = i.Id,
PartNo = i.PartNo,
Description = i.PartDescription,
Model = i.PartModel,
AvaQty = i.AvaQty,
ReOrderQty = i.ReOrderQty,
PartCato = i.PartCatogary,
ABCD = i.A_B_C_D_Category,
PastOrders = "Order Qty: " + order?.OrderQty ?? string.Empty
}).ToList();