gpt4 book ai didi

vb.net - 在 VB.NET 中使用 LINQ 组联接

转载 作者:行者123 更新时间:2023-12-04 23:28:59 24 4
gpt4 key购买 nike

我想弄清楚如何在 VB.NET 下的 LINQ 查询中使用组连接.出于某种原因,我似乎在语法上找到的每个示例都是完全错误的!至少,这是我的编译器一直告诉我的。我到底做错了什么?

这是一个简单的例子,我想将订单加入他们的订单项目,以便我最终得到一个包含按订单 ID 分组在一起的订单项目集合的类型:

Dim groupedOrders = (From o In orders
Group Join i In orderItems On o.OrderId Equals a.OrderId Into myOrders
Select o.OrderId, myOrders).ToList()

我目前在这个例子中遇到的是我正在创建错误的 'myOrders' 组:

Definition of method 'myOrders' is not accessible in this context.

最佳答案

在 VB 中,Into 别名需要是“Group”而不是 myOrders。使用 Northwind,您可以按如下方式说明您的查询:

Dim groupedOrders = 
From o On Orders
Group Join od in Order_Details On o.OrderID Equals od.OrderID Into Group
Select o.OrderID, Details = Group

如果要将组别名为其他名称,可以使用:
Dim groupedOrders = 
From o On Orders
Group Join od in Order_Details On o.OrderID Equals od.OrderID Into GroupedDetails = Group
Select o.OrderID, GroupedDetails

话虽如此,如果您的订单和订单项来自数据库提供者,您可以只使用自然关联而根本不需要联接:
Dim groupedOrders = 
From o In Orders
Select o.OrderID, Details = o.Order_Details

此外,如果您只需要按外键分组,则不需要父表:
Dim groupedOrders = 
From od In Order_Details
Group od By Key = od.OrderID Into Group
select Key, Group

关于vb.net - 在 VB.NET 中使用 LINQ 组联接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7811417/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com