[英]How to use ORDER BY COUNT in LINQ and SELECT COUNT it?
[英]How to use count in linq
我正在嘗試通過調用-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"},
如果這不是對count函數的不足方法,請有人指導我正確的方法。 非常感謝。
從您的代碼中,您不會返回計數。 您應該將return語句更改為
return Request.CreateResponse(HttpStatusCode.OK, SelectedRows );
同樣,由於您要在Console.Write
調用之前返回,因此您可能看不到任何寫入控制台的內容。
如果你有類似的東西
var data = [ {a:b, c:d}, {e:f, g:h, ...}, {..}, ... ]
在客戶端,其中數據是從c#方法返回的所有對象的數組,則可以執行
var count = data.length
使用Javascript並獲取您返回的對象數。 但是在這種情況下,您無需在C#方法中進行計數。
您的“ SelectedRows”僅在控制台中返回。
嘗試:
return Request.CreateResponse(HttpStatusCode.OK, SelectedRows);
似乎我無法對評論進行投票...到底值多少錢,我同意Grundy在原始帖子的評論中...不僅返回數據集,還根據問題的要求返回數據集中的記錄數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.