Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 使用实体框架/LINQ从所有用户处获取最新帖子_Sql_Linq_Entity Framework - Fatal编程技术网

Sql 使用实体框架/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

假设我有一个名为Posts的表,它有UserId、DatePosted和PostText。如何让EntityFramework生成SQL,以获得所有用户最近发表的文章的列表

在SQL中,我可以这样做(虽然如果一个用户同时发布两篇文章,这将不起作用,但我认为我可以设法过滤掉代码中的边缘案例)

SQL似乎返回了正确的POST,但我不知道如何将其转换为实体框架LINQ。

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());