Show / Hide Table of Contents

    $select query option

    Description

    $select is an OData system query option.

    The $select system query option allows clients to request a specific set of properties for each entity or complex type.

    For a great introduction to $select, read the OData $filter tutorial.

    $expand

    The $select query option is often used in conjunction with the $expand system query option, to define the extent of the resource graph to return ($expand) and then specify a subset of properties for each resource in the graph ($select). Expanded navigation properties MUST be returned, even if they are not specified as a selectItem.

    Default attributes

    When there is no $select clause or '$select=*', only the default attributes are returned.

    The attributes, which are returned by default are:

    • System attributes like Name, Description, PartNumber, etc.
    • References like ProductType, ProductGroup, etc (in OData terminology - Navigation properties)

    The following attributes are not returned by default:

    • The 'Id' attribute
    • Custom (user-defined) attributes
    • Child lists (OData terminology: Collection navigation properties)
    • Calculated attributes

    Example:

    GET ~/General_Products_ProductTypes?$top=2
    

    The result is:

    {
        "@odata.context": "https://example-server.com/example-db/api/domain/odata/$metadata#General_Products_ProductTypes",
        "value": [
            {
                "@odata.id": "General_Products_ProductTypes(c696c660-9aa4-4fe5-a396-126af4101792)",
                "IsDefault": false,
                "IsFixedAsset": false,
                "IsServiceActivityService": false,
                "IsServiced": true,
                "IsShipped": true,
                "IsStocked": true,
                "LotAutoCreation": true,
                "Code": "001",
                "Name": {
                    "BG": "sdds"
                }
            },
            {
                "@odata.id": "General_Products_ProductTypes(880b0c31-a9ef-4a3c-a0e7-13d39aa57464)",
                "IsDefault": false,
                "IsFixedAsset": false,
                "IsServiceActivityService": false,
                "IsServiced": false,
                "IsShipped": false,
                "IsStocked": false,
                "LotAutoCreation": false,
                "Code": "test sch",
                "Name": {
                    "BG": "test sch"
                }
            }
        ]
    }
    
    Note

    Non default properties must be explicitly specified in the $select clause.

    Example:

    GET ~/General_Products_Products?$top=2&$select=CustomProperty_WebName,CalculatedAttribute_ExampleAttr
    

    The result will only contain the selected properties.

    The default $select keyword

    You can explicitly use the keyword default in the $select clause to include all default properties.

    GET ~/General_Products_Products?$top=2&$select=default,CustomProperty_WebName,CalculatedAttribute_ExampleAttr
    

    The result will contain all default properties plus the selected CustomProperty_WebName and CalculatedAttribute_ExampleAttr.

    • Improve this Doc
    Back to top Generated by DocFX