Vb.net 查询中的LINQ相等运算符错误

Vb.net 查询中的LINQ相等运算符错误,vb.net,linq,Vb.net,Linq,我试图在VB.Net程序中使用LINQ查询数据库。这是我的查询语句: Dim query = From p In db.Parts, s In db.Suppliers Join sName In db.Suppliers On s.Supplier_ID Equals p.Supplier_ID Select p.Part_Number, p.Part_Description, sName 我得到的错误是: You must reference

我试图在VB.Net程序中使用LINQ查询数据库。这是我的查询语句:

Dim query = From p In db.Parts, s In db.Suppliers
            Join sName In db.Suppliers On s.Supplier_ID Equals p.Supplier_ID
            Select p.Part_Number, p.Part_Description, sName
我得到的错误是:

You must reference at least one range variable on both sides of the 'Equals' operator.
Range variable(s) 'p', 's' must appear on one side of the 'Equals' operator, and range variable(s) 'sName' must appear on the other.
我想做的是,我有一个Parts表,其中的一列有一个外键,它引用了我的Suppliers表中的Supplier_ID列。我正在尝试这样做,以便在我的Supplier表中获取要显示的Supplier_Name字段,而不仅仅是Supplier ID

我在Google上查找的所有内容都显示了与我相同的join语法,但显然我误解了它的实际工作原理。那么我的问题是什么


由于出现错误消息,我已尝试改变情况,但似乎没有任何效果,或者错误消息仍然存在,或者我只是收到了更多错误。

根据microsoft文档(和),您在这里遇到了几个问题:

首先,在
From
子句中指定这两个表,其中只需指定联接的“左”部分

Dim query = From p In db.Parts
其次,在
Join
子句中,您正在为
供应商(sName)指定一个您未使用的别名

Join s In db.Suppliers
您的最终查询应如下所示:

Dim query = From p In db.Parts
        Join s In db.Suppliers On s.Supplier_ID Equals p.Supplier_ID
        Select p.Part_Number, p.Part_Description, sName

根据microsoft文档(和),这里有几个问题:

首先,在
From
子句中指定这两个表,其中只需指定联接的“左”部分

Dim query = From p In db.Parts
其次,在
Join
子句中,您正在为
供应商(sName)指定一个您未使用的别名

Join s In db.Suppliers
您的最终查询应如下所示:

Dim query = From p In db.Parts
        Join s In db.Suppliers On s.Supplier_ID Equals p.Supplier_ID
        Select p.Part_Number, p.Part_Description, sName

您的
Equals
没有对
sName
的引用,sName是
连接的RHS的范围变量。不确定db.Suppliers中的
s试图实现什么。@NetMage我刚刚编辑了OP,其中描述了我试图实现的目标,不知道为什么一开始我忽略了它>\u无论名称,您认为
sName
的类型是什么?您的
Equals
没有引用
sName
,它是
连接的RHS的范围变量。不确定db.Suppliers中的
s试图实现什么。@NetMage我刚刚编辑了OP,其中描述了我试图实现的目标,不知道为什么我一开始忽略了它>\u无论名称如何,您认为
sName
的类型是什么?非常感谢。我不知道这两位微软医生怎么会在一个多小时的时间里没有找到解决方案,但不管怎样。非常感谢。我不知道那些微软的医生们怎么会在一个多小时的时间里没有找到解决方案,但不管怎样。