这会发出内部联接,这就是我想要和的作用:
var q =
from itm in esdc.items
join itmImg in esdc.itemImages on itm.itemId equals itmImg.itemId
join itmIdent in esdc.itemIdentities on itm.imgIdentityId equals itmIdent.itemIdentityId
join startImgs in esdc.vStartPgImgs on itmImg.imgId equals startImgs.imgId
select ...
这也有效,但发出了交叉连接。我如何获得内部联接?我仔细检查了实体,关系是正确的。
var q =
from itmIdent in esdc.itemIdentities
from itm in itmIdent.items
from itmImg in itm.itemImages
join startImgs in esdc.vStartPgImgs
on itmImg.imgId equals startImgs.imgId
select ...
如果您需要我发布已发布的SQL和实体设置,请告诉我。
答案 0 :(得分:6)
简单地说:如果使用第一个表单,则会获得内部联接。多个from
子句表示LINQ中的交叉连接(无论如何, 1 )。
基本上,如果您想要内部联接,请使用多个join
子句。
1 (我说有点因为后续的序列可能依赖于早期的序列......但对于LINQ to SQL,它们几乎总是交叉连接。)