如何将此SQL转换为实体框架LINQ查询
有人能帮我把这个SQL查询转换成EntityFramework LINQ吗如何将此SQL转换为实体框架LINQ查询,sql,.net,linq,c#-4.0,entity-framework-6,Sql,.net,Linq,C# 4.0,Entity Framework 6,有人能帮我把这个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 IsL
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; }
公共ICollection类似于{get;set;}
您仍然可以使用DbSet.SqlQuery
方法在entity framework 6中使用sql。@JEUX20是的,但我想知道如何将其转换为linq。