形成SQL查询并将结果传递给视图

时间:2017-04-26 23:38:47

标签: sql asp.net-mvc entity-framework

我有这种观点方法 -

public ActionResult Index()
    {
        var db = new ApplicationDbContext();
        var auctions = db.Auctions.ToArray();
        return View(auctions);  
    }

正确返回数据库中所有拍卖的数组。但我想回归最受欢迎的那些。我想做这样的事情:

public ActionResult Index()
    {
        var db = new ApplicationDbContext();
        var auctions = db.Auctions.getMostPopular.ToArray();
        return View(auctions);  
    }

其中getMostPopular()是我的模型中包含我所有拍卖的方法,目前看起来像是这样:

public static List<Auction> getMostPopular()
    {
       var query = "SELECT* FROM AUCTIONS WHERE EndTime > CONVERT(date, GETDATE()) ORDER BY viewCount DESC;" }
    }

那我该如何正确编写这个getMostPopular()方法呢? 这是在模型中编写它的正确途径吗?或者我应该在控制器索引操作中编写查询,如果是,那会是什么样的?

1 个答案:

答案 0 :(得分:0)

正确是相对的。您提出的SQL语句似乎可以解决问题。通过ViewCount desc对结果进行排序似乎是实现方法最主要的部分。如果您已经在考虑使用日期过滤器,那么您也可以考虑使用顶级子句,例如按ViewCount desc从表顺序中选择前10 *,以仅考虑固定数量的最受欢迎项目。