odata - combining $expand and $select

冷暖自知 提交于 2019-11-27 14:34:59

问题


In odata v4.0 is there an option for combining $expand and $select together?

I have a scenario wherein I'm trying to get specific columns in productItemChoices and item. The below query will give you all the columns in productItemChoices. I only need one column in the productItemChoices

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

回答1:


After going through a lot of time on this, I finally got the answer. We can nest select within expand using ; as a separator, something like

odata/Products(8)?$expand=choices($select=col1,col2;$expand=item($select=name))

This is documented in the OData v4 $expand documentation. The documentation also lists other useful examples such as

Categories?$expand=Products($filter=DiscontinuedDate eq null)
Categories?$expand=Products/$count($search=blue)



回答2:


in the select, you can use the entity/attribute to select specific attributes of expanded entities:

$select=productItemChoices/columnyouwant

I'm not sure about the relationships of the entities in your query. When expanding deeply, I have used the following syntax (without the parentheses) - In the following, I'm assuming that the Products relate to productItemChoices and productItemChoices have item

$expand=productItemChoices, productItemChoices/item

Then, to select

$select=productItemChoices/productItemChoicesGuid, productItemChoices/item/name

Obviously, if the relationships are different, you'll need to change it some



来源:https://stackoverflow.com/questions/28326800/odata-combining-expand-and-select

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!