实体框架中的计算订单

时间:2013-10-31 18:50:00

标签: c# linq entity-framework linq-to-entities entity-framework-5

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

1-按此规则

点 - (DateTime.Now - CreationDate)

Point和CreationDate是表格的实体

(我想通过大多数点帖子获得前N名新人)

2-Top N newes发表最多评论

如何通过Linq对实体进行这两个查询?

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

但它引发了错误

1 个答案:

答案 0 :(得分: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);

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