Выделить все столбцы для всех таблиц в join + linq join
Как выбрать все столбцы из таблиц в соединении с помощью 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.* // ???
}
Спасибо
Ответы
Ответ 1
Пока вы не можете расширить их до столбцов, вы можете просто вернуть объекты. Например:
select new { CTLJCRJOB, CTLRFDSTM }
Если вам нужно, чтобы он был сплющен, вам придется самим записать отображение, но все равно будет очень тривиальным.
Ответ 2
Вы можете использовать предложение into, но оно не сгладит его для вас.
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
Ответ 3
Еще один поворот
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();
Ответ 4
Вы можете использовать предложение into
, но оно не сгладит его для вас.
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
таким образом мы можем получить только результат столбцов CTLJCRJOB
, в моем тесте не было столбцов таблицы CTLRFDSTM