sql-server – 什么是LINQ相当于SQL的“IN”关键字

我怎样才能在
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 * …).

如果性能有很大差异,您需要对两者进行分析.

dawei

【声明】:淮南站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。