【发布时间】:2021-05-03 22:16:44
【问题描述】:
我正在将一个旧的 ASP.net (C#) 应用程序从普通 SQL 查询迁移到 LINQ to SQL,并且在处理一些更复杂的查询时遇到了一些问题。在这种情况下,我试图获取具有特定技能的员工列表。用户选择要搜索的技能,并将 ID 提供给执行该工作的方法。在旧的 SQL 版本中,我只是将 WHERE 子句附加到每个技能的字符串中。这是一个示例查询:
SELECT DISTINCT e.firstname, e.lastname, e.username
FROM employees AS e
WHERE e.id IN (SELECT es.emp_id
FROM emp_skl AS es
WHERE es.skl_id = 6 OR es.skl_id = 11
GROUP BY es.emp_id
HAVING COUNT(es.emp_id) >= 2)
关键是 HAVING COUNT 子句,因为它确保返回的员工拥有所有技能,而不仅仅是一项技能。无论如何,有人可以帮我把它变成一个可靠的 LINQ 查询吗?
【问题讨论】:
-
发布架构图的好举措。
标签: c# linq linq-to-sql