LINQ加入条款之间

reg*_*gex 5 .net t-sql linq-to-sql

我有一些问题抛出一个LINQ查询,将根据邮政编码加入一个表.我需要根据客户的邮政编码是否包含在由ZIPBEG和ZIPEND列确定的一系列邮政编码中来加入表格.

T-SQL看起来像这样:

JOIN [ZipCodeTable] [zips] 
    ON [customer].[zipcode] BETWEEN [zips].[ZIPBEG] AND [zips].[ZIPEND]

-- or

JOIN [ZipCodeTable] [zips] 
    ON [zips].[ZIPBEG] <= [customer].[zipcode] 
        AND [zips].[ZIPEND] >= [customer].[zipcode]
Run Code Online (Sandbox Code Playgroud)

cas*_*One 13

你无法在这种情况下特别加入,唯一一种正式支持的连接是基于相等的连接,你在T-SQL中的条件不符合.

相反,您必须执行笛卡尔积,然后根据适当的条件进行过滤:

from c in customers
from z in zips
where
  z.ZipBeg <= c.ZipCode && c.ZipCode <= z.ZipEnd
select
  c
Run Code Online (Sandbox Code Playgroud)