sql - 如何将此 SQL 转换为实体框架 LINQ 查询
问题描述
有人可以帮我将此 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; }
推荐阅读
- php - php中的单词音节
- c# - 转换列表
到 DBDataReader - react-native - Hitslop 不能在 TouchableNativeFeedback 中使用动画儿童
- sql - 在 SQL 中获取 Count 时,我可以获得总计数和列值为 1 的记录计数吗?
- sql-server - 在映射到标量函数的默认值中获取 @@identity 或 Scope_identity()
- mysql - 如何在 SQL 中表示浮点值
- python - TypeError: 'module' object is not callable error using Selenium ChromeDriver Chrome with Python
- python - 将4行数据读入一行pandas数据框
- cube - 为什么构建多维数据集时日志总是显示“无可用数据”?
- python - Why does rounding the floating-point number 1.4999999999999999 produce 2?