tables net multiple left inner ejemplos conditions .net linq-to-sql tsql

.net - net - linq join multiple conditions



LINQ Join On Between Clause (1)

Tengo algunos problemas al lanzar una consulta LINQ que se unirá a una tabla basada en un código postal. Necesito unirme a la mesa en función de si el código postal del cliente se encuentra dentro de un rango de códigos postales que está determinado por las columnas ZIPBEG y ZIPEND.

El T-SQL se vería así:

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]


No puede unirse específicamente a esta condición, el único tipo de combinación que se admite oficialmente es uno basado en la igualdad, que su condición en T-SQL no se ajusta.

En su lugar, deberá realizar un producto cartesiano y luego filtrar en las condiciones apropiadas:

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