我怎样才能在
linq中编写下面的SQL查询
select * from Product where ProductTypePartyID IN ( select Id from ProductTypeParty where PartyId = 34 )
解决方法
除了语法变化之外,您可以用几乎相同的方式编写它.
from p in ctx.Product where (from ptp in ctx.ProductTypeParty where ptp.PartyId == 34 select ptp.Id).Contains(p.ProductTypePartyID) select p
我更喜欢使用存在量词,但是:
from p in ctx.Product where (from ptp in ctx.ProductTypeParty where ptp.PartyId == 34 && ptp.Id == p.ProductTypePartyID).Any() select p
我希望这个表单将解析为生成的sql中的EXISTS(SELECT * …).
如果性能有很大差异,您需要对两者进行分析.