Sql 使用实体框架/LINQ从所有用户处获取最新帖子
假设我有一个名为Posts的表,它有UserId、DatePosted和PostText。如何让EntityFramework生成SQL,以获得所有用户最近发表的文章的列表 在SQL中,我可以这样做(虽然如果一个用户同时发布两篇文章,这将不起作用,但我认为我可以设法过滤掉代码中的边缘案例) SQL似乎返回了正确的POST,但我不知道如何将其转换为实体框架LINQ。Sql 使用实体框架/LINQ从所有用户处获取最新帖子,sql,linq,entity-framework,Sql,Linq,Entity Framework,假设我有一个名为Posts的表,它有UserId、DatePosted和PostText。如何让EntityFramework生成SQL,以获得所有用户最近发表的文章的列表 在SQL中,我可以这样做(虽然如果一个用户同时发布两篇文章,这将不起作用,但我认为我可以设法过滤掉代码中的边缘案例) SQL似乎返回了正确的POST,但我不知道如何将其转换为实体框架LINQ。IEnumerable posts=db.posts IEnumerable<Post> posts = db.Posts
IEnumerable posts=db.posts
IEnumerable<Post> posts = db.Posts
.GroupBy(p=>p.UserID)
.Select(p=>p.OrderByDescending(q=>q.DatePosted).First());
.GroupBy(p=>p.UserID)
.Select(p=>p.OrderByDescending(q=>q.DatePosted).First());
对于“完全相同的时间”问题,请在Posts表中使用rowversion列,并只获取其中的最大值。如此简单,却又如此复杂。看看它生成的SQL,不是很好——4个嵌套查询和一个外部应用程序。但是,它成功了!
IEnumerable<Post> posts = db.Posts
.GroupBy(p=>p.UserID)
.Select(p=>p.OrderByDescending(q=>q.DatePosted).First());