Приложение форума ASP.NET: получение ответа с наибольшим количеством лайков

Мы создаем веб-приложение типа форума, и мы пытаемся сделать так, чтобы ответы с наибольшим количеством лайков (и большинства антипатий) выглядели по-разному. Сущность «Ответ» имеет свойство «Реакции» (список реакций), которое включает в себя «нравится» и «не нравится» (они различаются логическим свойством: «истина» для «нравится», «ложь» для «не нравится»). Есть ли способ получить ответ с наибольшим количеством лайков и ответ с наибольшим количеством антипатий напрямую с помощью запроса LINQ? или мы должны сделать метод, который решает это?

Обновлено: у меня есть только одна сущность «Реакции», которая представляет как лайки, так и антипатии. Единственная разница между ними — это логическое свойство, установленное в значение true для лайков и false для антипатий.

Спасибо!

добро пожаловать в Stack Overflow !, не могли бы вы представить, как будет выглядеть структура данных, где вы записываете как и что не так?

coder_b 13.12.2020 23:14

Пожалуйста, отредактируйте свой вопрос и добавьте соответствующие части вашего DbSet<...>: видимо, у вас есть Answers, Likes и DisLikes. Какова связь между ними? Есть ли в одном ответе столбцы с количеством лайков/дизлайков? Нравится/не нравится в отдельной таблице. Существует ли отношение «один ко многим»: каждый ответ имеет ноль или более лайков с комментариями? или Многие-ко-многим, например: Многие ответы имеют много ответов, какой из них нравится или не нравится>

Harald Coppoolse 14.12.2020 08:47
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Обновлено: на основе комментария Саджида запрос был упрощен:

Конечно:

reactions.Where(liked => Liked.IsLike && (liked.id = 123)).Count()

или даже

reactions.Count(liked => liked.IsLike && liked.id == 123)

вы можете упростить запрос до: reactions.Count(liked => liked.IsLike && liked.id == 123) или без ToList(): reactions.Where(liked => liked.IsLike && liked.id == 123).Count()

Mohammed Sajid 14.12.2020 09:23

@Саджид, ты прав, соответственно отредактировал мой ответ. Я заржавел с .NET, который некоторое время не работал с ним.

Lajos Arpad 14.12.2020 11:19

Другие вопросы по теме