Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将此SQL转换为实体框架LINQ查询_Sql_.net_Linq_C# 4.0_Entity Framework 6 - Fatal编程技术网

如何将此SQL转换为实体框架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

有人能帮我把这个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; }
公共ICollection类似于{get;set;}

您仍然可以使用
DbSet.SqlQuery
方法在entity framework 6中使用sql。@JEUX20是的,但我想知道如何将其转换为linq。