Как преобразовать этот запрос SQL в Entity Framework LINQ

Может ли кто-нибудь помочь мне преобразовать этот SQL-запрос в EntityFramework LINQ? Как преобразовать этот запрос SQL в Entity Framework LINQ

DECLARE @UserId varchar(50) = '123'
SELECT
   TL.TrackId, 
   COUNT(*) AS LikeCount,
   (SELECT IIF(COUNT(*) > 0, 'true','false') FROM UserTrackLikes WHERE
    UserId = @UserId AND TrackId = TL.TrackId) AS IsLiked
FROM TrackList AS TL
LEFT OUTER JOIN UserTrackLikes AS UTL 
ON UTL.TrackId = TL.TrackId
GROUP BY TL.TrackId

Вы по-прежнему можете использовать sql в Entity Framework 6, используя метод DbSet.SqlQuery.

jeuxjeux20 27.07.2019 19:50

@ jeuxjeux20 да, но я хочу знать, как преобразовать это в linq.

Dhanushka nuwan 27.07.2019 19:53
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
2
66
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Вы можете использовать синтаксис запроса:

int userId = 123;
var result = (from trackList in context.TrackLists
              select new 
              {
                 trackList.TrackId,
                 LikeCount = trackList.Likes.Count(),
                 IsLiked = trackList.Likes.Any(x => x.UserId == userId)
              }).ToList();

Предположим, что здесь Likes представляет собой набор UserTrackLike, объявленный следующим образом:

public ICollection<UserTrackLike> Likes { get; set; }

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