C#或VB.NET没问题。
我想从下面的LINQ to SQL
表中计算每个国家/地区的人数我有两个表,一个是国家,另一个是人。这是从国家到人民之间的一对多关系。
Countries table column:CountryId,CountryName
People:PeopleId,FullName,CountryId (a primary key from Country table and allowed null)
我想知道每个国家有多少人,并得到类似以下结果的内容,只显示有人的国家/地区。 因为有些国家的人员表中没有人。
依旧......
谢谢。
答案 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