[英]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
首先,您應該注意使用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
其次,您可以將 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.