Linq查询比SQL查询显示更多的数据



我有一个这样的linq查询:

var query = from Romm in RoMM

join rfrsa in RoMmfrsa  on Romm.RoMmid equals rfrsa.RoMmid
join frsa in Frsa on rfrsa.Frsaid equals frsa.Fraid
join fra in Fra on frsa.Fraid equals fra.Fraid
where Romm.ActTypeId == 2 && Romm.SegmentId == 4
select new
{
Romm.ActTypeId,
Romm.RoMmid,
frsa.Fraid,
frsa.Frsaid,
Romm.ImpactId
};

和我有SQL代码如下:

SELECT romm.ROMMID 
, frsa.FRAID 
, frsa.FRSAID 
, romm.ImpactID 
FROM RoMM AS romm 
INNER 
JOIN RoMMFRSA AS rfrsa 
ON romm.RoMMID = rfrsa.RoMMID 
INNER 
JOIN FRSA AS frsa 
ON rfrsa.frsaid = frsa.frsaid 
INNER 
JOIN FRA AS fra 
ON frsa.FRAID = fra.FRAID 
WHERE romm.acttypeid = 2 
AND romm.segmentid = 4

SQL只显示一行(这是正确的),linq显示正确的行,然后它显示另外3行,这不是我们需要的。我需要的linq显示一行这是正确的SQL。这是因为可能有很多很多的关系吗?

看起来像是c#或SQL连接中的一个错别字:

SQL: ON rfrsa.frsaid    =   frsa.frsaid
C#:     rfrsa.Frsaid equals frsa.Fraid
^^^^^^ 
mismatch here

最新更新