我的LINQ查询在EF 4.1中加入了两个表,但是当我查看SQL事件探查器时,它只是从其中一个表中进行基本选择。连接被忽略。我在LINQ查询上尝试了很多变体,但得到了相同的结果。奇怪的是内部联接在我的应用程序的其他地方工作。我无法理解它。我接近放弃并只是调用存储过程但不愿意。以下是我尝试过的一些例子:
请注意,SQL事件探查器总是给我:SELECT * FROM Protocols
。
from s in db.Staff
join p in db.Protocols on s.ID equals p.PIID
select p
from s in db.Staff
from p in db.Protocols
where p.PIID == s.ID
select p
from s in db.Staff
from p in db.Protocols
where p.PIID == s.ID && s.ID = 99
select p
如果我最后做select s
,Staff
表确实包括在内,但这显然不是我想要的b / c我需要协议表中的数据。