LINQ to SQL计数表与关系

时间:2011-06-17 06:21:16

标签: c# vb.net linq linq-to-sql

  

C#或VB.NET没问题。

我想从下面的LINQ to SQL

表中计算每个国家/地区的人数

我有两个表,一个是国家,另一个是人。这是从国家到人民之间的一对多关系。

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

我想知道每个国家有多少人,并得到类似以下结果的内容,只显示有人的国家/地区。 因为有些国家的人员表中没有人。

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

依旧......

谢谢。

2 个答案:

答案 0 :(得分:2)

(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()}

答案 1 :(得分:0)

嗯这有点棘手..你必须使用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