【问题标题】:LINQ SQL Query with a range variable and a constant带有范围变量和常量的 LINQ SQL 查询
【发布时间】:2018-12-27 15:30:15
【问题描述】:

我有一个查询需要在哪里使用 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-comparison 与常量进行比较?

【问题讨论】:

  • 您不想将客户加入公司吗?
  • 我认为对于将范围变量与常量进行比较的实际问题,这是微不足道的吗?此查询只是一个快速模拟,其中第 3 行仅重要(加入/打开)。

标签: sql asp.net vb.net linq


【解决方案1】:

虽然纯 SQL JOINS 允许一个可能不引用要连接的表的连接条件,但 LINQ Joins 需要一个引用两个表的连接条件。 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-10
    • 1970-01-01
    • 1970-01-01
    • 2014-01-31
    • 1970-01-01
    相关资源
    最近更新 更多