Подсчет количества раз, когда запись была представлена ​​в другой таблице с использованием LINQ-To-SQL - PullRequest
1 голос
/ 23 февраля 2010

У меня есть таблица SQL Server с именем DeficiencyTag, а ее PK представляет собой целое число с именем DeficiencyTagID. У него будет пара сотен записей. Есть еще одна таблица с именем Deficiency, которая ссылается на конкретный DeficiencyTagID. Со временем их будет миллионы.

Что мне нужно сделать, так это составить список лучших 10 DeficiencyTag записей, исходя из того, сколько раз каждая DeficiencyTagID ссылается из таблицы Deficiency.

Единственный способ, о котором я могу думать, - это вручную циклически проходить по каждой записи DeficiencyTag и подсчитывать все записи дефицита, которые на нее ссылаются. Это звучит очень медленно и грязно.

Есть ли лучший способ? Я использую LINQ-To-SQL для взаимодействия с БД.

Ответы [ 2 ]

2 голосов
/ 23 февраля 2010

В ответ на ваш комментарий

var query = (from dt in dataContext.DeficiencyTags
             let count = dt.Deficiencies.Count
             orderby count descending
             select new { DeficiencyTag = dt, Count = count}).Take(10);
2 голосов
/ 23 февраля 2010

Предполагается, что в конструкторе существует связь между DeficidityTag и Deficidity:

var query = dataContext.DeficiencyTags
  .OrderByDescending(dt => dt.Deficiencies.Count())
  .Take(10);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...