我如何将此 SQL 转换为 Entity Framework LINQ 查询
How do i convert this SQL to Entity Framework LINQ query
谁能帮我把这个 SQL 查询转换成 EntityFramework 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
您可以使用查询语法:
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; }
谁能帮我把这个 SQL 查询转换成 EntityFramework 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
您可以使用查询语法:
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; }