我有一个由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();
但它引发了错误
答案 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);
如果我的解释错误,请发表评论。