web-dev-qa-db-fra.com

Sélectionnez toutes les colonnes pour toutes les tables de Join + Linq Rejoindre

Comment sélectionner toutes les colonnes à partir des tables dans la jointure à l'aide de LINQ

SQL:

select CTRL_RUN_JOB.*, CTRL_DATA_STREAM.*
 from CTRL_RUN_JOB inner join CTRL_DATA_STREAM
      on CTRL_RUN_JOB.DATA_STREAM_ID= CTRL_DATA_STREAM.DATA_STREAM_ID

LINQ:

from CTLJCRJOB in CTRL_RUN_JOBs 
join CTLRFDSTM in CTRL_DATA_STREAMs 
on CTLJCRJOB.DATA_STREAM_ID equals CTLRFDSTM.DATA_STREAM_ID
select  new {
         CTLJCRJOB.*  // ???
        ,CTLRFDSTM.*  // ???
}

Merci

25
Sreedhar

Pendant que vous ne pouvez pas les étendre aux colonnes, vous pouvez simplement renvoyer les entités. Par exemple:

select new { CTLJCRJOB, CTLRFDSTM }

Si vous en avez besoin, vous devrez écrire vous-même la cartographie, mais vous serez toujours très trivial.

40
leppie

Vous pouvez utiliser la clause dans, mais cela ne l'aplatisera pas pour vous.

from CTLJCRJOB in CTRL_RUN_JOBs 
join CTLRFDSTM in CTRL_DATA_STREAMs 
on CTLJCRJOB.DATA_STREAM_ID equals CTLRFDSTM.DATA_STREAM_ID into ALLCOLUMNS
from entry in ALLCOLUMNS
select entry 
8
gxtaillon

Vous pouvez utiliser la clause into, mais cela ne l'aplatisera pas pour vous.

from CTLJCRJOB in CTRL_RUN_JOBs 
join CTLRFDSTM in CTRL_DATA_STREAMs 
on CTLJCRJOB.DATA_STREAM_ID equals 
CTLRFDSTM.DATA_STREAM_ID into ALLCOLUMNS
from entry in ALLCOLUMNS
select entry 

de cette façon, nous ne pouvons obtenir que CTLJCRJOB Résultat des colonnes, il n'y avait pas CTLRFDSTM colonnes de table via mon test

0
p0ny1nr1v3r

Une autre torsion est

OutPutList = (from CTLJCRJOB in CTRL_RUN_JOBs 
              join CTLRFDSTM in CTRL_DATA_STREAMs 
                on CTLJCRJOB.DATA_STREAM_ID equals CTLRFDSTM.DATA_STREAM_ID
              select CTLJCRJOB).ToList();
0
Ajay2707