Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
形成SQL查询并将结果传递给视图_Sql_Asp.net Mvc_Entity Framework - Fatal编程技术网

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

形成SQL查询并将结果传递给视图,sql,asp.net-mvc,entity-framework,Sql,Asp.net Mvc,Entity Framework,我有这个看法- public ActionResult Index() { var db = new ApplicationDbContext(); var auctions = db.Auctions.ToArray(); return View(auctions); } 正确返回数据库中所有拍卖的数组。但我只想返回最受欢迎的。我想这样做: public ActionResult Index() {

我有这个看法-

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;" }
    }
publicstaticlist getMostPopular()
{
var query=“SELECT*FROM AUCTIONS WHERE EndTime>CONVERT(date,GETDATE())ORDER BY viewCount DESC;”}
}
那么如何正确编写这个getMostPopular()方法呢?
这是将其写入模型的正确路径吗?或者我应该在控制器索引操作中写入查询,如果是这样,那会是什么样子?

正确是相对的。您建议的SQL语句似乎可以做到这一点。按照ViewCount desc对结果进行排序似乎是实现方法get most populary的主要部分。如果您已经考虑了日期过滤器,您还可以考虑通过VIEWTUNE DESC从表顺序中选择TOP 10 *的顶部子句,仅考虑固定数量的最受欢迎的项。p> 为什么不尝试使用
var auctions=getMostPopular().ToArray()
并更改
getMostPopular
方法以使用LINQ(lambda)而不是像这样的原始SQL语句:
var query=db.Auctions.Where(x=>x.EndTime>DateTime.Today).OrderByDescending(x=>x.viewCount.ToList()