[英]How to translate an SQL query to LINQ
How to translate an SQL query to LINQ如何将 SQL 查询转换为 LINQ
SELECT DISTINCT q.Id
FROM Questions AS q
JOIN TagsQuestions AS tq
ON q.Id = tq.QuestionForeignKey
JOIN Tags AS t
ON t.Id = tq.TagForeignKey
WHERE t.Name IN ('C#', '.Net')
GROUP BY q.Id
HAVING COUNT(*) = 2
Firstly, You should note use DISTINCT q.Id
because it's already GROUP BY q.Id
.首先,您应该注意使用
DISTINCT q.Id
因为它已经是GROUP BY q.Id
。
SELECT q.Id
FROM Questions AS q
JOIN TagsQuestions AS tq ON q.Id = tq.QuestionForeignKey
JOIN Tags AS t ON t.Id = tq.TagForeignKey
WHERE t.Name IN ('C#', '.Net')
GROUP BY q.Id
HAVING COUNT(*) = 2
Secondly , You can transfer from sql to linq syntax like below其次,您可以将 sql 转换为 linq 语法,如下所示
var TagNames = new[] {
"C#",
".Net"
};
var result = from q in Questions
join tq in TagsQuestions on q.Id equals tq.QuestionForeignKey
join t in Tags on t.Id equals tq.TagForeignKey
where TagNames.Contains(t.Name)
group q by q.Id into g
where g.Count() = 2
select g.Key;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.