将 GroupBy / Having SQL 查询转换为 Linq 或 EF 查询

Converting a GroupBy / Having SQL query to Linq or EF query

我有以下查询:

SELECT planet_id 
FROM tags 
WHERE name IN ('tag1', 'tag2') 
GROUP BY hardware_id 
HAVING COUNT(name) = 1;

其中 'tag1' 和 'tag2' 是我传递给函数的 List<string> 的项目。我想知道如何将其转换为 Entity Framework 或 Linq 查询。

您可以使用Contains扩展方法:

var tags=new List<string>{"tag1", "tag2"};
var query= from t in context.Tags
           where tags.Contains(t.Name)
           group t by t.hardware_id into g
           where g.Count()==1