Cómo hacer combinaciones en LINQ en múltiples campos en combinación única

Necesito hacer una consulta LINQ2DataSet que haga una unión en más de un campo (como

var result = from x in entity
join y in entity2 
       on x.field1 = y.field1 
and 
          x.field2 = y.field2

Todavía he encontrado una solución adecuada (puedo agregar las restricciones adicionales a una cláusula where, pero esto está lejos de ser una solución adecuada, o usaresta solución, pero eso supone un equijoin).

¿Es posible en LINQ unirse en múltiples campos en una sola combinación?

EDITAR

var result = from x in entity
             join y in entity2
             on new { x.field1, x.field2 } equals new { y.field1, y.field2 }

es la solución a la que me referí como asumir un equijoin arriba.

Promover, adicionalEDITAR

Para responder a las críticas de que mi ejemplo original era un equijoin, reconozco que, mi requisito actual es un equijoin y ya he empleado la solución que mencioné anteriormente.

Sin embargo, estoy tratando de entender qué posibilidades y mejores prácticas tengo / debo emplear con LINQ. Voy a necesitar hacer una consulta de rango de fechas unirme pronto con una ID de tabla, y estaba evitando ese problema. Parece que tendré que agregar el rango de fechas en la cláusula where.

Gracias, como siempre, por todas las sugerencias y comentarios dados.

Respuestas a la pregunta(12)

Su respuesta a la pregunta