c# - 将条件为 "In"的 SQL 查询转换为 Lambda 表达式

标签 c# sql linq sql-to-linq-conversion

这可能非常简单,但不幸的是,我很难弄清楚如何将具有“In”条件的 SQL 查询转换为 lambda。

SELECT * 
FROM cm_wfapp 
WHERE recgid IN (select distinct wfapp_id from cm_wftrn where approver_id = 32060)

有什么办法可以转换吗?

最佳答案

为清楚起见,您可以在 LINQ 中执行 2 个查询。请记住,LINQ 具有延迟执行模型,因此实际 查询将在实际请求时生成。

所以你可以尝试做这样的事情:

var ids = wfapp_id.Where(i=>i.approver_id == 32060); 

//after use a ids in yor final query. 
var result = cm_wfapp.Where(id=>ids.Contains(id.recgid)); 

应该产生最佳结果,但您需要针对真实数据库及其数据再次测试它,以查看LINQ 是否生成良好的SQL还是不是。

关于c# - 将条件为 "In"的 SQL 查询转换为 Lambda 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16580817/

相关文章:

c# - 需要帮助将一些 F# 代码转换为 C#

sql - 选择语法作为要插入的子查询

c# - 使用 Linq 获取 parent 曾孙的 "lowest"日期

c# - 如何将包含 "NOT IN"约束的 SQL 语句转换为其等效的 LINQ?

c# - 如何在 Linq 表达式中处理 IDisposableobject create?

c# - 列表框项目方向为水平

c# - 构建/运行针对已安装 .Net 4 或 .Net 4.5 的 .Net 4 的应用程序之间有什么区别吗?

c# - 为 EnterpriseLibrary 设置的 SQL CommandTimeout

sql - mysql查询获取列中每个元素的计数

sql - PostgreSQL 而不是使用多个查询更新规则