如何在LINQ中通过内部联接使用分组方式

时间:2018-07-24 21:42:08

标签: c# linq

我正在尝试为以下查询编写LINQ,

Select DIS.iDataItemID, DIS.iDataItemCurrentStatusID, DI.iDataTypeID, 
DI.iEmployeeID, DI.iEmployerID, DI.iLinkID, DI.iSystemID, DI.sData, 
DI.sEmployerCode, DI.sRecieptID, COunt(*)
from DataItem DI
INNER JOIN DataItemStatus DIS ON DIS.iDataItemID = 
DI.iDataItemID 
INNER JOIN RefDataItemStatus ON DIS.iDataItemCurrentStatusID 
= RefDataItemStatus.iDataItemStatusID
AND DIS.iDataItemCurrentStatusID = 1 AND DI.iDataTypeID = 8 
GROUP BY DIS.iDataItemID, DIS.iDataItemCurrentStatusID, DI.iDataTypeID, 
DI.iEmployeeID, DI.iEmployerID, DI.iLinkID, DI.iSystemID, DI.sData, 
DI.sEmployerCode, DI.sRecieptID

我写了下面的LINQ,需要知道如何在此上使用Group by,

from dataItem in msaDBContext.DataItem
                                 join dataItemStatus in msaDBContext.DataItemStatus on dataItem.iDataItemID equals dataItemStatus.iDataItemID
                                 join refDataItemStatus in msaDBContext.RefDataItemStatus on dataItemStatus.iDataItemCurrentStatusID equals refDataItemStatus.iDataItemStatusID
                                 where dataItemStatus.iDataItemCurrentStatusID == _processingStatus.iDataItemStatusID && dataItem.iDataTypeID == _dataType.iDataTypeID
                                 select new
                                 {
                                     iDataItemID = dataItem.iDataItemID,
                                     iDataItemCurrentStatusID = dataItemStatus.iDataItemCurrentStatusID,
                                     iDataTypeID = dataItem.iDataTypeID,
                                     iLinkID = dataItem.iLinkID,
                                     biRowVersion = dataItem.biRowVersion,
                                     sData = dataItem.sData,
                                     iEmployeeID = dataItem.iEmployeeID,
                                     iEmployerID = dataItem.iEmployerID,
                                     sEmployerCode = dataItem.sEmployerCode,
                                     iSystemID = dataItem.iSystemID,
                                     sReceiptID = dataItem.sRecieptID
                                 };

0 个答案:

没有答案