Tengo dos tablas, Table1
y Table2
. Quiero llevar a cabo, por ejemplo, una combinación externa izquierda:Seleccione todas las columnas después de UNIR en LINQ
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 se puede notar, que desea seleccionar todas las propiedades de los objetos de la tabla resultante (los enumerables considerar 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).
Gracias de antemano por las pistas.
¿no es la primera opción usar el método ToString() durante la asignación? En ese caso obtendré, por ejemplo, valores de "Namespace.MyType" en la columna llamada Object1 después de hacer myOutput.ToArray() ... – Jamie
No, no invocará 'ToString()', lo que le da la idea de que lo haría ? ¿Lo estás vinculando a un control de IU de algún tipo? El * control * podría invocar 'ToString()', pero la consulta misma es auténtica, tt simplemente usa el objeto completo y lo mapea a una propiedad. –
su comentario me dio una idea: he creado una nueva clase que contiene referencias para ambos objetos. Entonces es fácil vincularse a ciertas propiedades de estos :) – Jamie