2015-02-04 39 views
9

Odata v4.0'da $ expand ve $ select'i bir arada birleştirmek için bir seçenek var mı?

productItemChoices ve öğesinde belirli sütunları almaya çalıştığım bir senaryo var. Aşağıdaki sorgu size ProductItemChoices içinde tüm sütunlarını verecektir.

$select=productItemChoices/columnyouwant 

ben emin değilim: Ben sadece genişletilmiş varlıkların belirli özelliklerini seçmek için varlık/özelliğini kullanabilirsiniz seçeneğini de productItemChoices bir sütun

odata/Products(08f80b45-68a9-4a9f-a516-556e69e6bd58)?$expand=productItemChoices($expand=item($select=name)) 

cevap

22

Çok fazla zaman geçtikten sonra, cevabını aldım, genişletmek için kullanarak genişleyebiliriz;

odata/Products(08f80b45-68a9-4a9f-a516-556e69e6bd58)?$expand=productItemChoices($select=anycolumnnameinproductItemChoices;$expand=item($select=name)) 
+0

Çalışmaları ile Asp.Net Web API'sinde bu benim için çalışıyor! Bunun için herhangi bir kaynak dökümantasyonu var mı? – Jerther

+0

Bu çalışır. Komik olan, çünkü benim docs (asp.NET WebAPI) böyle bir şey söylemek gerekir: oda/Kategoriler? $ Expand = Ürünler & $ select = Name, Products/Name. Odata v3 ve v4 arasında bir fark olabilir mi? – Patrick

+0

Bu gerçekten v3 ve v4 arasındaki farktır, tıpkı rama gibi http://stackoverflow.com/a/26746527/462781 adresinde bulunur. aslında. – Pete

1

gerek Sorgunuzdaki varlıkların ilişkileri. derinden genişleyen, ben (parantez olmadan) şu sözdizimini kullandık - Aşağıda, ben Ürünler productItemChoices ilgilidir ve productItemChoices

$select=productItemChoices/productItemChoicesGuid, productItemChoices/item/name 
seçmek için, Sonra et

$expand=productItemChoices, productItemChoices/item 
sahip olduğunu farz ediyorum

Açıkçası, eğer ilişkiler farklıysa, onu biraz değiştirmeniz gerekecek

+0

gibi bir ayırıcı, bir şey olarak ben bu OData/Ürünleri (08f80b45-68a9-4a9f-a516-556e69e6bd58)? $ = ProductItemChoices genişletmek ($ genişletmek = item) & $ = productItemChoices/productItemChoicesGuid seçmek çalıştı ve o verir { "hatası" hatası ": { " code ":" ", " ileti ":" URI'de belirtilen sorgu geçerli değil. Sorgulama veya genişletme seçeneklerinin her birinin yalnızca TypeSegments veya Properties içerdiğini sorgulayın. } } – pranag

+0

Cevabı daha fazla ayrıntıyla düzenledim –

+1

Burada vv'den bahsediyorum v4 – pranag