Таблица подсчета LINQ to SQL с отношением - PullRequest
0 голосов
/ 17 июня 2011

C # или VB.NET в порядке.

Я бы хотел посчитать количество людей для каждой страны из следующих таблиц с LINQ to SQL

У меня есть две таблицы, одна из них "Страны", а другая "Люди". От страны к людям это отношение один ко многим.

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

Я хочу посчитать, сколько людей в каждой стране, и получить что-то вроде следующего результата, который показывает только страну, в которой есть люди. Потому что в некоторых странах нет людей в таблице People.

  • США: 10
  • Китай: 20
  • Россия: 15

и т. Д ..

Спасибо.

Ответы [ 2 ]

2 голосов
/ 17 июня 2011
(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()}
0 голосов
/ 17 июня 2011

Ну, это довольно сложно ... Вы должны использовать отношения, используя 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...