如何使用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.* // ???
}
由于
答案 0 :(得分:38)
虽然您无法将它们扩展为列,但您只需返回实体即可。例如:
select new { CTLJCRJOB, CTLRFDSTM }
如果你需要弄平,那么你必须自己写出映射,但仍然是非常微不足道的。
答案 1 :(得分:7)
你可以使用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
答案 2 :(得分:0)
另一种扭曲是
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();
答案 3 :(得分:0)
您可以使用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
的表列