假设我有一个名为Posts的表,其中包含UserId,DatePosted,PostText。如何让Entity Framework生成SQL以获取所有用户的最新帖子列表。
在SQL中,我可以做这样的事情(虽然如果用户在同一时间发布两个帖子,这将无效,但我想我可以设法过滤代码中的边缘情况)...
select * from
Posts p,
(select UserId, max(DatePosted) as DatePosted from Posts group by UserId) rp
where p.UserId=rp.UserId and p.DatePosted=rp.DatePosted;
SQL似乎正在返回正确的帖子,但我无法弄清楚如何将其转换为实体框架LINQ。
答案 0 :(得分:0)
IEnumerable<Post> posts = db.Posts
.GroupBy(p=>p.UserID)
.Select(p=>p.OrderByDescending(q=>q.DatePosted).First());