Seleccione todas las columnas después de UNIRSE en LINQ

Tengo dos tablas, Table1 y Table2 . Quiero realizar, por ejemplo, una combinación externa izquierda:

 var myOutput = from object1 in Table1 join object2 in Table2 on object1.Property1 equals object2.Property2 into Table3 from output in Table3.DefaultIfEmpty() select new { object1.Property1, object1.Property2, //... output.Property3, output.Property4, //... }; 

Como puede observar, quiero seleccionar todas las propiedades de ambos objetos de la tabla resultante (los enumerables considerados al unirse contienen los objetos de ciertos tipos, estos son diferentes para ambas relaciones). Por supuesto, puedo seleccionar las propiedades en la selección anónima, como se muestra en el ejemplo.

Mi pregunta es cómo evitar especificar todas las propiedades de forma manual? Me gustaría tener algo como SELECT * FROM TABLE3 , donde TABLE3 es una relación resultante (después de unir TABLE1 y TABLE2 ).

Gracias de antemano por las pistas.

Debe especificar cada uno manualmente si desea proyectar en un tipo aplanado. Su otra opción es que su tipo combinado contenga ambos objetos, y los objetos traerán naturalmente sus propiedades.

 select new { Object1 = object1, Object2 = output }; 

Y trabajarías con eso como myObj.Object1.Property1 , myObj.Object2.Property4 , etc.

Una última opción que todavía implica cierto trabajo manual es definir un tipo apropiado y tener un constructor o un método de creación que haga el trabajo de segmentar las propiedades de objeto en un tipo aplanado. Aún realiza la asignación manual, pero la aísla de su lógica de consulta.

 select new CombinedType(object1, output); //or select builder.GetCombinedType(object1, output);