Я хочу получить пять самых повторяющихся записей из таблицы в ссылке на Entity Framework 4.0. Как это возможно в одном запросе, который возвращает список коллекции из пяти записей?Получить пять самых повторяющихся записей в Entity Framework
ответ
На самом деле вам следует группировать поля, которые определяют, повторяется ли запись или нет. Например. в вашем случае это должно быть что-то вроде идентификатора участника. Затем вы можете ввести новую переменную диапазона, которая будет содержать количество записей в каждой группе. Используйте эту переменную для упорядочения результатов:
var query = from s in db.Statistics
group s by s.MemberId into g // group by member Id
let loginsCount = g.Count() // get count of entries for each member
orderby loginsCount descending // order by entries count
select new { // create new anonymous object with all data you need
MemberId = g.Key,
LoginsCount = loginsCount
};
Затем возьмите первые 5:
var top5 = query.Take(5);
Это будет генерировать запрос типа
SELECT TOP (5) // Take(5)
[GroupBy1].[K1] AS [MemberId], // new { MemberId, LoginsCount }
[GroupBy1].[A1] AS [C1]
FROM (SELECT
[Extent1].[MemberId] AS [K1],
COUNT(1) AS [A1] // let loginsCount = g.Count()
FROM [dbo].[Statistics] AS [Extent1]
GROUP BY [Extent1].[MemberId] // group s by s.MemberId
) AS [GroupBy1]
ORDER BY [GroupBy1].[A1] DESC // orderby loginsCount descending
это, кажется, полезно, большое вам спасибо. какой будет точный запрос в ссылке на объекты? – user2493843
@ user2493843 Я уже обновил ответ с образцом сгенерированного SQL-запроса :) –
Вы просто группируете данные по кол-ву, по убыванию по счету, а затем берете (5). Примеры группировки, среди прочих, можно найти по адресу 101 LINQ Samples.
Я не понял, можете ли вы предложить мне точный запрос? – user2493843
- 1. Выберите пять самых высоких записей:
- 2. Entity Framework Миграция семян повторяющихся строки
- 3. Пять самых больших значений в столбце
- 4. Entity Framework Обновление записей 100K
- 5. Поиск последних самых повторяющихся записей из SQL Server 2012
- 6. Обновление и выбор записей в Entity Framework
- 7. Python RotatingFileHandler: получить n самых последних записей
- 8. Entity framework получить последние записи в списке записей с датой
- 9. Слияние записей миграции в Entity Framework
- 10. Обновление зависимых записей в Entity Framework 5
- 11. Entity Framework DbSet содержит 0 записей
- 12. Количество Доступ связанных записей объекта Entity Framework
- 13. Entity Framework Получить количество закладок
- 14. Синхронизация записей с использованием Entity Framework
- 15. Entity Framework: Получить детей
- 16. Entity Framework: произошла ошибка при обновлении записей
- 17. Entity Framework First() не возвращает никаких записей
- 18. Entity Framework 5 - удаление дочерних записей
- 19. Поиск записей с Entity Framework и MVC3
- 20. Entity Framework Linq запрос для фильтрации записей
- 21. Удалить последние N записей, Entity Framework
- 22. Entity Framework. Просмотр возвратных дубликатов записей
- 23. Entity Framework протоколирование, чтобы сохранить 7500 записей
- 24. Entity Framework метания ошибки при обновлении записей
- 25. MVC 5 Entity Framework 6 Тиражирование записей
- 26. Entity Framework добавляет слишком много записей
- 27. Entity Framework - Обновление записей показывает ошибку аннотаций
- 28. Buuble sort, чтобы найти пять самых маленьких элементов в массиве
- 29. Проверка повторяющихся строк с использованием Entity Framework в C#
- 30. Получение дубликатов записей в БД с использованием Entity Framework
Что точной записи вы работаете? Как вы определяете, что они повторяют? Пожалуйста, покажите свой код. Без точной информации вы не можете получить точные ответы. –
@SergeyBerezovskiy позвольте мне объяснить вам .. предположим, у меня есть таблица статистики, в которой я сохраняю запись всякий раз, когда член входит в свою учетную запись, теперь я хочу получить пять лучших членов, которые вступили в максимальное количество раз с номером их имени входа. Вам нужно больше объяснений? – user2493843
Этого достаточно для более точного ответа. Но помните - в следующий раз вы должны предоставить всю эту информацию с образцами кода, о которых идет речь. Это даст ответы быстро и точно –