c# - 将 SQL 子查询转换为 LINQ
问题描述
我是 LINQ 的新手,正在尝试将 SQL 子查询转换为 lINQ。我们可以在 LINQ 中编写像 SQL 这样的子查询吗?
这是数据库
Table EMP
Name Null? Type
EMPNO NOT NULL NUMBER(4)
NAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NUMBER(2)
Table Dpt
Name Null? Type
DEPTNO NOT NULL NUMBER(2)
DNAME VARCHAR2(14)
LOC VARCHAR2(13)
这是SQL查询
SELECT *
FROM emp
WHERE deptno IN (SELECT deptno
FROM dept
WHERE dname = 'RESEARCH');
这是我的努力:
var r = (from query in conn.EMPs
where (query.DEPTNO == (from q in conn.DEPTs
where q.DNAME == "RESERCH"
select q.DEPTNO))
select new
{
query
}).ToList();
解决方案
我喜欢使用连接:
var r = (from query in conn.EMPs
join q in conn.DEPTs on query.deptno equals q.DEPTNO
select new { query = query, q = q})
.Where(x => x.q.DNAME == "RESEARCH")
.ToList();
推荐阅读
- reactjs - 如何防止用户输入以数字开头的用户名,但只允许在字母字符后输入数字?
- python - Python:如何在循环中只打印一行
- android - 使用 shrinkResources true 时未找到可绘制对象
- cert-manager - 是否可以使用 cert-manager 颁发手动创建的证书?
- javascript - 如何持续关注 MongoDB 并更新我的 UI?
- python - Python在引发异常后添加重试
- c# - Selenium c# IWebElement 列表旧参考
- amazon-web-services - 我的 Kubernetes 集群上的 AWS redis 连接错误
- python - AMD Ryzen 5950X 在 MKL 2020.0 和 MKL_DEBUG_CPU_TYPE=5 下运行缓慢
- pine-script - 参考 MA 交叉前的柱线,在交叉前绘制三角形 50 根柱线