2016-04-05 31 views
1

Sunucu: Standart VS 2015 jeneratörü ile oluşturulan oda denetleyicileri.

// GET: odata/MyEntities 
[EnableQuery(AllowedQueryOptions = AllowedQueryOptions.All)] 
public IQueryable<Models.Odata. MyEntity> GetMyEntities() 
{ 
    return db.MyEntities; 
} 

Müşteri: KendoUI ürünü

var ds = new kendo.data.HierarchicalDataSource({ 
    type: "odata-v4", 
    transport: { 
    read: { 
     url: "odata/EndPoints", 
     dataType: "json" 
    } 
    }, 
    schema: { 
      model: { 
       id: "Id", 
      } 
     } 
    }); 

İstek:

http://localhost:44444/odata/MyEntities?$format=json - Beklenen neyin döner, ama

http://localhost:44444/odata/MyEntities?$format=json&$count=true - üretir hatası:

{ 
    "odata.error":{ 
    "code":"","message":{ 
     "lang":"en-US","value":"The query parameter '$count' is not supported." 
    } 
    } 
} 

AppStart'ta standart ayarları kullandım. Bu ne?

+0

Neden = true? http://www.odata.org/getting-started/basic-tutorial/#count –

+0

$ true değeri olmadan aynı sonucu verir – idm

+0

Hangi veri hizmeti sürümü geçiyor? https://msdn.microsoft.com/en-us/library/azure/gg312156.aspx#DetermineDataServiceVersion –

cevap

0

OData sürüm 3, $inlinecount adlı bir sorgu seçeneğine sahiptir, $count değil. Görünüşe göre, sorgu seçeneği /$count yol segmentiyle ve sürüm $count sorgu seçeneğiyle karıştırılıyor.

talep kuruluşlar kendileri ile birlikte bir koleksiyonda varlıkların toplam sayım, eğer işletme toplama

GET http://localhost:44444/odata/MyEntities?$format=json&$inlinecount=allpages 

Talebi sadece sayımı:

GET http://localhost:44444/odata/MyEntities/$count?$format=json 

OData Version 3.0 Core Protocol Bkz bölümler 10.2.3.6 ve 10.2.5.

+0

Odatav4 jeneratörü ile yeniden oluşturulmuş kontrolörler, yeniden yüklenmiş paketler, kontrol edilen sürüm = 4 ve çalışıyor. Teşekkürler! – idm

+0

Harika! V4'e geçebilmeniz iyi oldu. BTW, JSON, v4'teki varsayılan kablo biçimidir, bu yüzden artık "$ format = json" sorgu seçeneğine ihtiyacınız yoktur. – lencharest