2009-02-11 92 views
5

我有一些問題扔在一起,將加入一個基於郵政編碼表的LINQ查詢。我需要根據客戶的郵政編碼是否位於由ZIPBEG和ZIPEND列確定的一系列郵政編碼中來加入表格。LINQ加入之間條目

的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] 

回答

12

不能明確在此條件下加入,只有那種加入被正式支援是一個基於平等,你的條件T-SQL不符合。

相反,你將必須執行一個笛卡爾積,然後在適當的條件進行過濾:

from c in customers 
from z in zips 
where 
    z.ZipBeg <= c.ZipCode && c.ZipCode <= z.ZipEnd 
select 
    c