这是我的第一个问题。对于一项学校作业,我正在使用 Rider 在 ASP.net MVC 中编写程序。这将是电影网络应用程序。查询得到当前各厅正在播放的节目。因此,对于 6 个大厅,我有 6 个 ID,所有 ID 都应该返回给我:
- 大厅编号
- 电影名
- 演出时间(开始时间)
我构建的代码是这样的,它可以在我的查询控制台中运行:
SELECT "HallId", "Title", "StartAt"
FROM (SELECT *, ROW_NUMBER() OVER (PARTITION BY "HallId" ORDER BY "StartAt") rn
FROM "Showtime" where "StartAt"::time < now()::time) x
JOIN "Movie" M ON "MovieId" = M."Id"
WHERE x.rn = 1
ORDER BY "HallId"
为此我需要一个 LINQ 查询,但我无法让它工作。顺便说一下,我使用 Postgres。这就是为什么“”。 有人能给我答案吗?
最佳答案
你的问题对列名不够清楚,但你可以使用与以下 linq 查询相同的名称
var result =
(from s in dbentities.Showtime
join r in dbEntities.Movie on s.Mid equals r.Mid
where s.StartAt < DateTime.Now && r.rn == 1).ToList();
关于c# - 使用 ROW_NUMBER() 和 PARTITION BY 的复杂 LINQ 查询的解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71313678/