如何创建一段时间内排名靠前的文章列表?(asp.net c#)

如何创建一段时间内排名靠前的文章列表?(asp.net c#),c#,asp.net,vote,C#,Asp.net,Vote,我有一个包含文章的网页。用户可以“喜欢”这些文章。我想为每个星期/月创建一个排名靠前的文章列表,如“本周热门文章”、“上周热门文章”等。我想知道如何正确实现这一点,并计算投票数,以便以后不会减慢db/网页的速度。 谢谢,Oak您可以创建一个接受3个参数的函数 public List<Aritcle> GetTopArticles(int top, DateTime startDate, DateTime endDate) { //Implement this method

我有一个包含文章的网页。用户可以“喜欢”这些文章。我想为每个星期/月创建一个排名靠前的文章列表,如“本周热门文章”、“上周热门文章”等。我想知道如何正确实现这一点,并计算投票数,以便以后不会减慢db/网页的速度。
谢谢,Oak

您可以创建一个接受3个参数的函数

public List<Aritcle> GetTopArticles(int top, DateTime startDate, DateTime endDate)
{
   //Implement this method 
   //e.g.
   //Select Top(10) * From Article 
   //Where likeDate Between startDate AND endDate
   //ORDER BY Likes DESC
}

但是那些日子必须是动态的-不像我那样硬编码

嗨,谢谢你的快速回复,我想这个答案是我想要的。如果有数千篇文章,每篇都可能有100+个“喜欢”和日期,那么它将如何影响响应时间?我不认为这会影响性能,但你应该试试这个。这已被分离为不同的调用,因此您可以根据自己喜欢的任何日期范围调用它们,或者免除您不想要的调用。一次只需要N张唱片好吧,听起来比,谢谢!
var topArticlesThisWeek = GetTopArticles(10, DateTime.Parse('2013-03-24'), DateTime.Today);
var topArticlesLastMonth = GetTopArticles(10, DateTime.Parse('2013-02-01'), DateTime.Parse('2013-02-29'));