Select All columns for all tables in join + linq join
如何使用linq
从联接表中选择所有列
Sql:
1 2 3 | 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:
1 2 3 4 5 6 7 | 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 } |
如果需要将其展平,则必须自己写出映射,但是仍然非常琐碎。
您可以使用in子句,但不会为您变平。
1 2 3 4 5 | 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 |
另一种扭曲是
1 2 3 4 | 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(); |
您可以使用
1 2 3 4 5 6 | 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 |
这样,我们只能得到