Linq to sql 具有和的Linq中的SQL查询

Linq to sql 具有和的Linq中的SQL查询,linq-to-sql,syntax,Linq To Sql,Syntax,我有一个包含三个表的小数据库示例:城市、国家和地理语言(国家使用的语言)。现在,我想获得世界上人口至少100万的所有城市中使用最多的语言 以下是SQL查询: SELECT SUM(c.population) AS totalPop, g.name_en FROM cities c, country cy, geo_languages g WHERE c.country_code = cy.id AND cy.id = g.code2l GROUP BY g.name_en HA

我有一个包含三个表的小数据库示例:城市、国家和地理语言(国家使用的语言)。现在,我想获得世界上人口至少100万的所有城市中使用最多的语言

以下是SQL查询:

SELECT SUM(c.population) AS totalPop, g.name_en
FROM cities c,  country cy,  geo_languages g
WHERE   c.country_code = cy.id AND 
    cy.id = g.code2l
GROUP BY g.name_en
HAVING SUM(c.population) > 1000000
ORDER BY totalPop DESC;
这里是到目前为止的Linq查询:

Var query =
    from c in db.City
    join country in db.Country on c.country_code equals country.id
    join languages in db.geo_languages on country.id equals
        languages.code2l    
    group languages by languages.name_en    
    select new{
        totalPop = c.Sum (c => c.population)    
    };
我只是不知道如何将HAVING SUM和ORDER BY转换成Linq。 我非常感谢您的帮助。

试试那个:

var query =
    from c in db.City
    join country in db.Country on c.country_code equals country.id
    join languages in db.geo_languages on country.id equals
        languages.code2l    
    group c by languages.name_en into g
    where g.Sum(x => x.population) > 1000000
    select new {
        totalPop = g.Sum(x => x.population)    
    };