【发布时间】:2012-04-28 00:38:39
【问题描述】:
我正在尝试为 EF 创建一个 Linq 查询,该查询连接来自内部选择的 2 个值。在下面,您会发现可以解决问题的 SQL 查询,而在 Linq 中尝试这样做会更加棘手。
我使用 POCO 对象并希望查询返回 List 而不是匿名类型。 Linq to EF 可以做到这一点吗?
选择 s1.* FROM [统计] s1 内部联接 ( 选择 MAX(CreateDate) 作为 createdate 来自[统计] 按用户 ID 分组 ) s2 ON s1.UserId = s2.[UserId] 和 s1.CreateDate = s2.createdate ORDER BY s1.Balance desc【问题讨论】:
-
此 SQL 无效,因为 s2 只有聚合、创建日期,并且没有 UserId 列。修复:SELECT s1.* FROM [Statistics] s1 INNER JOIN (SELECT UserId, MAX(CreateDate) as createdate FROM [Statistics] GROUP BY UserId) s2 ON s1.UserId = s2.UserId and s1.CreateDate = s2.createdate ORDER BY s1.余额说明
标签: linq entity-framework