将 SQL 子查询转换为包含 IN、DISTINCT 关键字的 LINQ 格式

Posted

技术标签:

【中文标题】将 SQL 子查询转换为包含 IN、DISTINCT 关键字的 LINQ 格式【英文标题】:Convert SQL subquery to LINQ format which contains IN, DISTINCT keywords 【发布时间】:2018-04-02 20:02:05 【问题描述】:

先生/女士,我想将下面提到的 SQL 查询转换为 LINQ,我该如何实现。

select * from dbo.Main as M 
where M.ApplicationId in 
(select distinct R.ApplicationId from tblRecomSanctionedDetail R 
where R.UpdateByUserId = 1011 )

尝试使用我对 LINQ 的有限知识,但无法获得输出。

【问题讨论】:

DISTINCT 在这里没有做任何事情,所以你可以删除它。检查这个答案IN()***.com/questions/51339/… 感谢 Aaron 我能够得到想要的结果 【参考方案1】:

目前我没有任何地方可以对此进行测试,但我认为大概会是……

var applicationIds = tblRecomSanctionedDetailQueryable.Where(x => x.UpdateByUserId == 1011).Select(x => x.ApplicationId);
var result = mainQueryable.Where(x => applicationIds.Contains(x.ApplicationId)).ToList();

【讨论】:

谢谢 Timovski 我也能够使用此查询获得所需的结果

以上是关于将 SQL 子查询转换为包含 IN、DISTINCT 关键字的 LINQ 格式的主要内容,如果未能解决你的问题,请参考以下文章

将 SQL 子查询转换为 Linq 查询

将特定行转换为列的 SQL 查询

SQL优化

如何将带有子选择的 SQL 查询转换为 MDX 查询?

mysql 数据操作 子查询 介绍

FROM中的子查询不在Oracle SQL中工作