-1

我有一个由 asp.net mvc 和实体框架工作代码创建的博客,我想在两个地方的页面内以两种方式按条件显示前 N 个(例如前 10 个)帖子

1- 根据这条规则

点 - (DateTime.Now - CreationDate)

Point 和 CreationDate 是表 post 的实体

(我想要最多点帖子的前 N ​​个新闻)

2-Top N newes post by most Comment

如何通过 Linq to Entity 进行这两个查询?

 public class Post
 {

     public int Id { get; set; }

     public string Subject { get; set; }

     public string Description { get; set; }

     public DateTime CreationDate { get; set; }

     public int Point { get; set; }

     public virtual IList<Comment> Comments { get; set; }


}




  public class Comment
    {
        public int Id { get; set; }

        public string Name { get; set; }

        public string Description { get; set; }

        public Virtual Post Post { get; set;}
    }

编辑 我想要查看 Post 的顺序是 Point 和 CreationDate 的函数,查询如下:

var latestPosts = dbContext.Posts
    .OrderByDescending(p => p.Point - (DateTime.Now - p.CreationDate).TotalDays)
    .Take(postCount)ToList();

但它会引发错误

4

1 回答 1

0

以下是对您的问题的 2 个查询:

获取基于 CreationDate 的最新 X 帖子

var latestPosts = dbContext.Posts
    .OrderByDescending(x => x.CreationDate)
    .Take(postCount);

获得评论最多的 X 个帖子

var mostCommentedPosts = dbContext.Posts
    .OrderByDescending(x => x.Comments.Count)
    .Take(postCount);

如果我的解释有误,请发表评论。

于 2013-10-31T19:06:15.657 回答