簡體   English   中英

如何將 SQL 查詢轉換為 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

首先,您應該注意使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM