2009-02-11 8 views
5

Arasında Açık katılın. Müşterinin posta kodu ZIPBEG ve ZIPEND kolonlar belirlenir posta kodları bir dizi ile yatıyor olmadığını ben dayalı tablo katılması gerekir.LINQ Bir posta koduna göre bir tablo katılacak bir LINQ sorgusu birlikte atma bazı sorunlar yaşıyorum Madde

T-SQL şöyle görünecektir:

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] 

cevap

12

Sen özellikle bu koşula katılamaz, sadece biraz o resmen desteklendiği hangi koşul içinde, eşitliğe dayalı bir katılmak T-SQL uyumlu değildir.

Bunun yerine, bir kartezyen ürünü gerçekleştirmek zorunda kalacak ve daha sonra uygun koşullara filtre:

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