Мы создаем веб-приложение типа форума, и мы пытаемся сделать так, чтобы ответы с наибольшим количеством лайков (и большинства антипатий) выглядели по-разному. Сущность «Ответ» имеет свойство «Реакции» (список реакций), которое включает в себя «нравится» и «не нравится» (они различаются логическим свойством: «истина» для «нравится», «ложь» для «не нравится»). Есть ли способ получить ответ с наибольшим количеством лайков и ответ с наибольшим количеством антипатий напрямую с помощью запроса LINQ? или мы должны сделать метод, который решает это?
Обновлено: у меня есть только одна сущность «Реакции», которая представляет как лайки, так и антипатии. Единственная разница между ними — это логическое свойство, установленное в значение true для лайков и false для антипатий.
Спасибо!
Пожалуйста, отредактируйте свой вопрос и добавьте соответствующие части вашего DbSet<...>
: видимо, у вас есть Answers
, Likes
и DisLikes
. Какова связь между ними? Есть ли в одном ответе столбцы с количеством лайков/дизлайков? Нравится/не нравится в отдельной таблице. Существует ли отношение «один ко многим»: каждый ответ имеет ноль или более лайков с комментариями? или Многие-ко-многим, например: Многие ответы имеют много ответов, какой из них нравится или не нравится>
Обновлено: на основе комментария Саджида запрос был упрощен:
Конечно:
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()
@Саджид, ты прав, соответственно отредактировал мой ответ. Я заржавел с .NET, который некоторое время не работал с ним.
добро пожаловать в Stack Overflow !, не могли бы вы представить, как будет выглядеть структура данных, где вы записываете как и что не так?