具有多个group by和count的查询的SQL到LINQ转换

具有多个group by和count的查询的SQL到LINQ转换,sql,linq,sql-to-linq-conversion,Sql,Linq,Sql To Linq Conversion,请提供以下SQL查询到LINQ的转换 SQL Query converted to LINQ Query : 以下SQL查询所需的SQL到LINQ转换 select COUNT(rg.TagId), t.Name, r.Id,r.Name from ResourcesTag rg inner join Tag t on rg.TagId = t.Id inner join Resources r on rg.ResourceId =r.Id

请提供以下SQL查询到LINQ的转换

SQL Query converted to LINQ Query :
以下SQL查询所需的SQL到LINQ转换

        select COUNT(rg.TagId), t.Name, r.Id,r.Name from ResourcesTag rg
        inner join Tag t on rg.TagId = t.Id
        inner join Resources r on rg.ResourceId =r.Id
        group by rg.TagId,t.Name,r.Id,r.Name
        order by COUNT(rg.TagId) desc

要将SQL转换为LINQ查询理解,请执行以下操作:

  • 将Subselect转换为单独声明的变量
  • 按照LINQ子句顺序翻译每个子句,将一元运算符(DISTINCT、TOP等)翻译为应用于整个LINQ查询的函数
  • 使用表别名作为范围变量。使用列别名作为匿名类型字段名
  • 对多个列使用匿名类型(新{})
  • 通过使用into Join_变量并从Join变量执行另一个操作,然后使用.DefaultIfEmpty()模拟左联接
  • 将COALESCE替换为条件运算符和null测试
  • 中的
    翻译为
    。包含()
    不在
    中翻译为
    !。。。包含()
  • SELECT*必须替换为SELECT range_变量,对于联接,则替换为包含所有范围变量的匿名对象
  • 必须用SELECT new{…}替换SELECT字段以创建包含所有所需字段或表达式的匿名对象
  • 必须使用扩展方法处理正确的完全外部联接