正在創建分頁和每頁獲取10個JSON記錄:可以找到odata總記錄而不用提取它們嗎?
var coursemodel = query.Skip(skip).Take(take).ToList();
我需要在網頁上顯示的數據庫中可用的總記錄數。例如,您正在查看x的20到30(其中x是記錄的總數)。 x可以在沒有通過網絡傳輸記錄的情況下找到?
正在創建分頁和每頁獲取10個JSON記錄:可以找到odata總記錄而不用提取它們嗎?
var coursemodel = query.Skip(skip).Take(take).ToList();
我需要在網頁上顯示的數據庫中可用的總記錄數。例如,您正在查看x的20到30(其中x是記錄的總數)。 x可以在沒有通過網絡傳輸記錄的情況下找到?
對其進行排序。這篇
http://yourserver7:40479/odata/Courses?$top=1&skip=1&$inlinecount=allpages
得到這個
{
"odata.metadata":"http://yourserver7:40479/odata/$metadata#Courses","odata.count":"503","value":[
{
"CourseID":20,"Name":"Name 20","Description":"Description 20","Guid":"Guid 20"
}
]
}
我再從odata.count得到了價值!我的網址獲取找到的所有記錄,在適用處添加$ filter ...
可以使用$count
運營商繼續沿着這條返回的記錄總數,東西:
http://services.odata.org/OData/OData.svc/Categories(1)/Products/$count
不知道語法將使用LINQ是什麼,但可以肯定它是可能的。
PS - 總是一個很好的參考:http://www.odata.org/documentation/odata-version-2-0/uri-conventions/
感謝您的回覆。它看起來像在dbase表中查找總記錄的唯一方法是使用web.api計數端點 – Steve
http:// localhost:40479/odata/Courses?$ inlinecount = allpages這會給出元數據中的計數值,但我不知道如何在C#中訪問它 – Steve
你是否通過服務引用調用它?不知道你在c#中訪問它意味着什麼。 – Schandlich
就試試這個:
context.EFCars.Where(c => c.Description == desc).Count();
凡EFCars是一個實體集名稱。
OData 4.0不支持查詢參數'$ inlinecount'。您的答案與早期版本的OData相關。 – mrDinkelman