Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.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
C# 如何在linq中使用计数_C#_Asp.net Mvc_Linq_Linq To Sql_Asp.net Web Api - Fatal编程技术网

C# 如何在linq中使用计数

C# 如何在linq中使用计数,c#,asp.net-mvc,linq,linq-to-sql,asp.net-web-api,C#,Asp.net Mvc,Linq,Linq To Sql,Asp.net Web Api,我试图通过调用-api/test/name=storm使数据和计数功能显示在客户端,但我无法看到任何计数结果,只能看到客户端的数据 public HttpResponseMessage Get([FromUri] Query query) { var data = db.database.AsQueryable(); int page = 0; int pageSize = 10; if (query.name != n

我试图通过调用-api/test/name=storm使数据和计数功能显示在客户端,但我无法看到任何计数结果,只能看到客户端的数据

 public HttpResponseMessage Get([FromUri] Query query)
    {
        var data = db.database.AsQueryable();
        int page = 0;
        int pageSize = 10;

        if (query.name != null)
        {
            data = data.Where(c => c.Name == query.name);
        }
        if (query.cusip != null)
        {
            data = data.Where(c => c.CUSIP == query.cusip);
        }

        if (!data.Any())
        {
            var message = string.Format("No data was found");
            return Request.CreateErrorResponse(HttpStatusCode.NotFound, message);
        }
        if (query.name != null)
        {
            data = data.OrderByDescending(c => c.UploadDate).Skip(page * pageSize).Take(pageSize);
        }
        if (query.cusip != null)
        {
            data = data.OrderByDescending(c => c.UploadDate).Skip(page * pageSize).Take(pageSize);
        }

        int SelectedRows = data.Count();
        return Request.CreateResponse(HttpStatusCode.OK, data);
        Console.Write("{0}records displayed of {0} found.", SelectedRows);
    }

}
输出响应:

 [{"$id":"1","ID":419035,"Name":"ACIS 2013-1A E","SaleDateTime":null,"Region":null,"CUSIP":"00089PAA6","Size__m_":"2500000","OriginalRating":null,"MaturityDate":null,"Manager":null,"priceTalk":"92-24","Cover":"TALK","LastUpdated":"2013-08-01T09:06:37","UploadDate":"2013-07-31T00:00:00","Type":"CLO","ISINs":null,"Decimal_price":92.75,"CMBS_spread":null,"CMBS_decimal":null,"Current_size":"2500000"},

如果这不是计数函数的适当方法,请有人告诉我正确的方法。非常感谢。

从您的代码中,您不会返回计数。您应该将return语句更改为

return Request.CreateResponse(HttpStatusCode.OK, SelectedRows );
另外,由于您在
控制台.Write调用之前返回,您可能看不到写入控制台的任何内容

如果你有

var data = [ {a:b, c:d}, {e:f, g:h, ...}, {..}, ... ]
在客户机中,如果数据是从c#方法返回的所有对象的数组,则可以执行以下操作:

var count = data.length
并获取返回的对象数。但在这种情况下,您不需要在C#方法中进行计数。

您的“SelectedRows”仅在控制台中返回

尝试:


看来我不能投任何意见。。。值得一提的是,我同意格伦迪在原始帖子上的评论。。。不仅返回数据集,还返回所请求的数据集中的记录计数。

我们需要知道您配置了哪些格式化程序,以及客户端代码是什么样子的。您试图返回什么媒体类型?我返回json格式的数据。根据要求,我已在上述帖子中附上了回复样本。非常感谢任何帮助或指导。感谢youtry
Request.CreateResponse(HttpStatusCode.OK,新建{SelectedRows,data})非常感谢您的建议。我能够在客户端获得计数值。我希望能够在客户端的消息中显示计数值,但当我尝试实现下面的逻辑时,会出现错误。int SelectedRows=data.Count();var mes=string.Format(“{0}个结果”);return Request.CreateResponse(HttpStatusCode.OK,new{mes,SelectedRows,data});谢谢你的回复。这只会给我计数的数值,我希望能够得到带有计数值的消息,表示找到的行。我不太明白你的意思。您需要数值和计数吗?是的,这是正确的。抱歉没有在我原来的帖子中澄清这一点。请参阅我的编辑。如果您真的想避免使用我建议的Javascript代码,可以使用Crundy的注释。
return Request.CreateResponse(HttpStatusCode.OK, SelectedRows);