具有关系的LINQ到SQL计数表

本文关键字:SQL 有关系 LINQ | 更新日期: 2023-09-27 17:59:38

C#或VB.NET都可以。

我想用LINQ到SQL 从下表中统计每个国家的人数

我有两张桌子,一张是国家,另一张是人民。这是从国家到人民的一对多关系。

Countries table column:CountryId,CountryName
People:PeopleId,FullName,CountryId (a primary key from Country table and allowed null)

我想统计一下每个国家有多少人,得到下面这样的结果,只显示有人的国家。因为有些国家的人民名单上没有人。

  • 美国:10
  • 中国:20
  • 俄罗斯:15

等等。

谢谢。

具有关系的LINQ到SQL计数表

(from c in Countries
select new { c.CountryName, Count = c.People.Count()}).Where(r => r.Count > 0)

from c in Countries.Where(r => r.People.Any())
select new { c.CountryName, Count = c.People.Count()}

这有点棘手。。您必须使用LINQ使用关系,请尝试使用此查询

    var count = from pl in dc.People join ci in dc.Countries on pl.CountryId equals ci.CountryId groupby ci.CountryId select PeopleId.count();

编写LINQ查询还有很多其他方法,但这是最简单的方法。。有关LINQ to SQL的更多信息,您可以查看我的博客:LinqtoSQL