使用Entity Framework / LINQ从所有用户获取最新帖子

时间:2010-12-15 19:21:33

标签: sql linq entity-framework

假设我有一个名为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。

1 个答案:

答案 0 :(得分:0)

IEnumerable<Post> posts = db.Posts
    .GroupBy(p=>p.UserID)
    .Select(p=>p.OrderByDescending(q=>q.DatePosted).First());