带有范围变量和常量的LINQ SQL查询

时间:2018-07-19 13:10:53

标签: sql asp.net vb.net linq

我在一个查询中需要使用Join / On,但收到此错误消息:您必须在“等于”运算符的两侧都引用至少一个范围变量。

这是我的简化查询:

 Dim Result As String = (From cust In Model.Customer
                             Join comp In Model.Company On cust.Id_Customer Equals 1
                             Select cust.Name, comp.Name)

有没有办法将范围变量Equals比较成常数?

1 个答案:

答案 0 :(得分:2)

虽然纯SQL JOINS允许一个可能不引用要连接的表的联接条件,但是LINQ Join要求一个引用两个表的联接条件。 On的条件要求比较两个表中的列才能进行连接。例如,有效的查询应为:

Dim Result As String = (From cust In Model.Customer
                             Join comp In Model.Company On cust.Id_FavoriteCompany Equals comp.Id_Company
                             Where cust.Id_Customer = 1
                             Select cust.Name, comp.Name)

如果您有Customer.Id_FavoriteCompany和Company.Id_Company列。

您需要在两个表中的一列上联接。

更多信息:

Visual Basic LINQ Query Operators