Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Combinar tablas mediante OData aplicando la $expandopción de consulta a las propiedades de navegación. Este enfoque le permite controlar qué datos se devuelven de los registros de tabla relacionados al consultar la API web de Dataverse.
- Puedes incluir hasta 15 opciones
$expanden una consulta. Cada una de las opciones$expandcrea una unión que puede afectar al rendimiento. - Las consultas que expanden las propiedades de navegación con valores de colección podrían devolver datos almacenados en caché para esas propiedades que no reflejan los cambios recientes. Utilice el
nullencabezado con el valorIf-None-Matchpara anular la caché del navegador. Obtenga más información acerca del uso de encabezados HTTP para obtener más detalles.
La siguiente tabla describe las opciones de consulta qu epuede aplicar en ciertass opciones $expand:
| Opción | Description | Más información |
|---|---|---|
$select |
Seleccione qué propiedades se devuelven. | Seleccionar columnas |
$filter |
Para las propiedades de navegación con valor de colección, limite los registros devueltos. | Filtrar filas |
$orderby |
Para las propiedades de navegación con valor de colección, controle el orden de los registros devueltos. No es compatible con $expand anidado. |
$expand anidado en propiedades de navegación valoradas como colección |
$top |
Para las propiedades de navegación con valor de colección, limite el número de registros devueltos. No es compatible con $expand anidado. |
$expand anidado en propiedades de navegación valoradas como colección |
$expand |
Expanda las propiedades de navegación en el conjunto de entidades relacionadas. El uso de $expand en $expand se llama $expand anidado. |
Expansión anidada de propiedades de navegación de valor único y $expand anidada de propiedades de navegación valorada como colección |
Estas opciones son un subconjunto de las opciones de consulta descritas en OData Versión 4.0 Parte 1: Protocolo más Errata 02 11.2.4.2.1 Opciones de Expansión. Las opciones $skip, $count, $search y $levels no se admiten para la API web de Dataverse.
Use estas opciones con $expand agregándolas entre paréntesis después del nombre de la propiedad de navegación. Separe cada opción con punto y coma (;).
Por ejemplo, la consulta siguiente:
Solicita la propiedad
account.nameUne la solicitud de propiedad de navegación con valor de colección
AccountTasks:- La propiedad
task.subject - Donde
task.subjectcontiene la cadena "Task" - Ordenado por la fecha
task.createdonde forma descendente
- La propiedad
/accounts?$select=name&$expand=Account_Tasks($select=subject;$filter=contains(subject,'Task');$orderby=createdon desc)
Limitar columnas con $select
Al igual que con cualquier consulta, limite siempre las columnas devueltas mediante $select cuando use $expand. Por ejemplo, la siguiente solicitud devuelve los valores contact.fullname y task.subject en los resultados expandidos del tipo de entidad account:
Solicitud:
GET [Organization URI]/api/data/v9.2/accounts?$select=name
&$expand=primarycontactid($select=fullname),Account_Tasks($select=subject)
Prefer: odata.maxpagesize=1
If-None-Match: null
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Respuesta:
HTTP/1.1 200 OK
OData-Version: 4.0
Preference-Applied: odata.maxpagesize=1
{
"@odata.context": "[Organization URI]/api/data/v9.2/$metadata#accounts(name,primarycontactid(fullname),Account_Tasks(subject))",
"value": [
{
"@odata.etag": "W/\"80649578\"",
"name": "Litware, Inc. (sample)",
"accountid": "78914942-34cb-ed11-b596-0022481d68cd",
"primarycontactid": {
"fullname": "Susanna Stubberod (sample)",
"contactid": "70bf4d48-34cb-ed11-b596-0022481d68cd"
},
"Account_Tasks": [
{
"@odata.etag": "W/\"80649460\"",
"subject": "Task 1 for Litware",
"_regardingobjectid_value": "78914942-34cb-ed11-b596-0022481d68cd",
"activityid": "f68393c1-34cb-ed11-b597-000d3a993550"
}
],
"Account_Tasks@odata.nextLink": "[Organization URI]/api/data/v9.2/accounts(78914942-34cb-ed11-b596-0022481d68cd)/Account_Tasks?$select=subject"
}
],
"@odata.nextLink": "[Organization URI]/api/data/v9.2/accounts?$select=name&$expand=primarycontactid($select=fullname),Account_Tasks($select=subject)&$skiptoken=%3Ccookie%20pagenumber=%222%22%20pagingcookie=%22%253ccookie%2520page%253d%25221%2522%253e%253caccountid%2520last%253d%2522%257b78914942-34CB-ED11-B596-0022481D68CD%257d%2522%2520first%253d%2522%257b78914942-34CB-ED11-B596-0022481D68CD%257d%2522%2520%252f%253e%253c%252fcookie%253e%22%20istracking=%22False%22%20/%3E"
}
Diferencias entre las propiedades de navegación de un solo valor y las de colección
Importante
Recuerde que hay dos tipos de propiedades de navegación. Obtenga más información sobre las propiedades de navegación de la API web
Las propiedades de navegación de un solo valor corresponden a atributos de búsqueda que admiten relaciones de varios a uno y permiten establecer una referencia a otro registro.
Las propiedades de navegación valoradas como colección corresponden a relaciones de uno a varios o de varios a varios.
La expansión de una propiedad de navegación con valores de colección puede hacer que el tamaño de la respuesta sea grande de maneras difíciles de prever. Es importante que incluya límites para controlar la cantidad de datos que se devuelven. Puede limitar el número de registros utilizando la paginación. Más información sobre resultados de paginación
Hay una diferencia significativa en la forma en que se aplica la paginación a las opciones de $expand anidadas aplicadas a las propiedades de navegación con valores de colección. Más información sobre la expansión de propiedades de navegación valoradas como colección
Expandir propiedades de navegación de un solo valor
El siguiente ejemplo demuestra cómo recuperar registros de contacto, incluido el contacto principal y el usuario que creó los registros.
Solicitud:
GET [Organization URI]/api/data/v9.2/accounts?$select=name
&$expand=primarycontactid($select=contactid,fullname),createdby($select=fullname)
Prefer: odata.maxpagesize=2
If-None-Match: null
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Respuesta:
HTTP/1.1 200 OK
Content-Type: application/json; odata.metadata=minimal
Preference-Applied: odata.maxpagesize=2
OData-Version: 4.0
{
"@odata.context": "[Organization URI]/api/data/v9.2/$metadata#accounts(name,primarycontactid(contactid,fullname),createdby(fullname))",
"value": [
{
"@odata.etag": "W/\"80649578\"",
"name": "Litware, Inc. (sample)",
"accountid": "78914942-34cb-ed11-b596-0022481d68cd",
"primarycontactid": {
"contactid": "70bf4d48-34cb-ed11-b596-0022481d68cd",
"fullname": "Susanna Stubberod (sample)"
},
"createdby": {
"fullname": "System Administrator",
"systemuserid": "4026be43-6b69-e111-8f65-78e7d1620f5e",
"ownerid": "4026be43-6b69-e111-8f65-78e7d1620f5e"
}
},
{
"@odata.etag": "W/\"80649580\"",
"name": "Adventure Works (sample)",
"accountid": "7a914942-34cb-ed11-b596-0022481d68cd",
"primarycontactid": {
"contactid": "72bf4d48-34cb-ed11-b596-0022481d68cd",
"fullname": "Nancy Anderson (sample)"
},
"createdby": {
"fullname": "System Administrator",
"systemuserid": "4026be43-6b69-e111-8f65-78e7d1620f5e",
"ownerid": "4026be43-6b69-e111-8f65-78e7d1620f5e"
}
}
],
"@odata.nextLink": "[Organization URI]/api/data/v9.2/accounts?$select=name%0A&$expand=primarycontactid($select=contactid,fullname),createdby($select=fullname)&$skiptoken=%3Ccookie%20pagenumber=%222%22%20pagingcookie=%22%253ccookie%2520page%253d%25221%2522%253e%253caccountid%2520last%253d%2522%257b7A914942-34CB-ED11-B596-0022481D68CD%257d%2522%2520first%253d%2522%257b78914942-34CB-ED11-B596-0022481D68CD%257d%2522%2520%252f%253e%253c%252fcookie%253e%22%20istracking=%22False%22%20/%3E"
}
La propiedad de navegación de valor único createdby devuelve una instancia de systemuser EntityType. Se devuelven las propiedades systemuserid y ownerid. Esta devolución se produce porque systemuser hereda de EntityType principal y comparte la ownerid clave principal con EntityType de equipo a través de esta herencia.
Sin embargo, la tabla Usuario (SystemUser) tiene la clave principal de SystemUserId. Ambas propiedades systemuserid y ownerid tienen el mismo valor.
Más información acerca de la herencia de EntityType
Devolver referencias
En lugar de devolver datos, también puede devolver referencias o vínculos a los registros relacionados expandiendo la propiedad de navegación de un solo valor con la opción /$ref. El siguiente ejemplo devuelve objetos JSON con una propiedad @odata.id que tiene una URL para cada contacto principal.
Solicitud:
GET [Organization URI]/api/data/v9.2/accounts?$select=name
&$expand=primarycontactid/$ref
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Respuesta:
HTTP/1.1 200 OK
Content-Type: application/json; odata.metadata=minimal
Preference-Applied: odata.maxpagesize=2
OData-Version: 4.0
{
"@odata.context": "[Organization URI]/api/data/v9.2/$metadata#accounts(name,primarycontactid,primarycontactid/$ref())",
"value": [
{
"@odata.etag": "W/\"80649578\"",
"name": "Litware, Inc. (sample)",
"_primarycontactid_value": "70bf4d48-34cb-ed11-b596-0022481d68cd",
"accountid": "78914942-34cb-ed11-b596-0022481d68cd",
"primarycontactid": {
"@odata.id": "[Organization URI]/api/data/v9.2/contacts(70bf4d48-34cb-ed11-b596-0022481d68cd)"
}
},
{
"@odata.etag": "W/\"80649580\"",
"name": "Adventure Works (sample)",
"_primarycontactid_value": "72bf4d48-34cb-ed11-b596-0022481d68cd",
"accountid": "7a914942-34cb-ed11-b596-0022481d68cd",
"primarycontactid": {
"@odata.id": "[Organization URI]/api/data/v9.2/contacts(72bf4d48-34cb-ed11-b596-0022481d68cd)"
}
}
],
"@odata.nextLink": "[Organization URI]/api/data/v9.2/accounts?$select=name%0A&$expand=primarycontactid/$ref&$skiptoken=%3Ccookie%20pagenumber=%222%22%20pagingcookie=%22%253ccookie%2520page%253d%25221%2522%253e%253caccountid%2520last%253d%2522%257b7A914942-34CB-ED11-B596-0022481D68CD%257d%2522%2520first%253d%2522%257b78914942-34CB-ED11-B596-0022481D68CD%257d%2522%2520%252f%253e%253c%252fcookie%253e%22%20istracking=%22False%22%20/%3E"
}
Solo puede usar la opción /$ref con propiedades de navegación de un único valor. Si la usa con una propiedad de navegación con valor de colección, obtiene el error siguiente:
{
"error": {
"code": "0x80060888",
"message": "Expand with $ref is only supported on lookup type navigation property."
}
}
Expansión anidada de propiedades de navegación de un único valor
Puede expandir las propiedades de navegación de un único valor a varios niveles, anidando una opción $expand en otra opción $expand.
La consulta siguiente devuelve task registros y expande el account relacionado, el contact relacionado con el contact y el systemuser que creó el registro account:
Solicitud:
GET [Organization URI]/api/data/v9.2/tasks?$select=subject
&$expand=regardingobjectid_contact_task($select=fullname;
$expand=parentcustomerid_account($select=name;
$expand=createdby($select=fullname)))
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Prefer: odata.maxpagesize=2
Respuesta:
HTTP/1.1 200 OK
Content-Type: application/json; odata.metadata=minimal
Preference-Applied: odata.maxpagesize=2
OData-Version: 4.0
{
"@odata.context": "[Organization URI]/api/data/v9.2/$metadata#tasks(subject,regardingobjectid_contact_task(fullname,parentcustomerid_account(name,createdby(fullname))))",
"value": [
{
"@odata.etag": "W/\"80730855\"",
"subject": "Task 1 for Susanna Stubberod",
"activityid": "e9a8c72c-dbcc-ed11-b597-000d3a993550",
"regardingobjectid_contact_task": {
"fullname": "Susanna Stubberod (sample)",
"contactid": "70bf4d48-34cb-ed11-b596-0022481d68cd",
"parentcustomerid_account": {
"name": "Litware, Inc. (sample)",
"accountid": "78914942-34cb-ed11-b596-0022481d68cd",
"createdby": {
"fullname": "System Administrator",
"systemuserid": "4026be43-6b69-e111-8f65-78e7d1620f5e",
"ownerid": "4026be43-6b69-e111-8f65-78e7d1620f5e"
}
}
}
},
{
"@odata.etag": "W/\"80730861\"",
"subject": "Task 2 for Susanna Stubberod",
"activityid": "c206f534-dbcc-ed11-b597-000d3a993550",
"regardingobjectid_contact_task": {
"fullname": "Susanna Stubberod (sample)",
"contactid": "70bf4d48-34cb-ed11-b596-0022481d68cd",
"parentcustomerid_account": {
"name": "Litware, Inc. (sample)",
"accountid": "78914942-34cb-ed11-b596-0022481d68cd",
"createdby": {
"fullname": "System Administrator",
"systemuserid": "4026be43-6b69-e111-8f65-78e7d1620f5e",
"ownerid": "4026be43-6b69-e111-8f65-78e7d1620f5e"
}
}
}
}
],
"@odata.nextLink": "[Organization URI]/api/data/v9.2/tasks?$select=subject&$expand=regardingobjectid_contact_task($select=fullname;$expand=parentcustomerid_account($select=name;$expand=createdby($select=fullname)))&$skiptoken=%3Ccookie%20pagenumber=%222%22%20pagingcookie=%22%253ccookie%2520page%253d%25221%2522%253e%253cactivityid%2520last%253d%2522%257bC206F534-DBCC-ED11-B597-000D3A993550%257d%2522%2520first%253d%2522%257bE9A8C72C-DBCC-ED11-B597-000D3A993550%257d%2522%2520%252f%253e%253c%252fcookie%253e%22%20istracking=%22False%22%20/%3E"
}
Expandir propiedades de navegación valoradas como colección
Hay algunas diferencias importantes en la respuesta que dependen de si usa anidado $expand con una propiedad de navegación con valor de colección en cualquier parte de su consulta.
| $expand anidado | $expand único | |
|---|---|---|
| Paginación | Paginación en filas expandidas. | Paginación solo en recurso de EntitySet.
<property name>@odata.nextLinkLas direcciones URL de las filas expandidas no incluyen información de paginación. |
Se admiten $top o $orderby |
No | Yes |
| Relaciones de N:N compatibles | No. Consulte $expand anidada con relaciones N:N | Yes |
$expand único en propiedades de navegación valoradas como colección
Si solo usa un nivel $expandúnico, el servicio no aplica paginación a las filas expandidas. Si incluye el encabezado de Prefer: odata.maxpagesize solicitud, el servicio solo aplica la paginación al recurso EntitySet de la consulta.
Cada propiedad de navegación expandida con valor de colección devuelve una URL <property>@odata.nextLink que no incluye información de paginación. Esta dirección URL representa la colección filtrada para la relación con las opciones de consulta anexadas. Puede usar esa dirección URL para enviar una solicitud independiente GET y esta devuelve las mismas filas que se devolvieron en la solicitud original. Puede aplicar paginación a esa solicitud.
Dado que el servicio no aplica la paginación a los registros expandidos, se pueden devolver hasta 5000 registros de tabla relacionados para cada propiedad de navegación con valores de colección expandidos. Dependiendo de los datos y la consulta, esta cantidad podría ser grande. Devolver esa cantidad de datos podría afectar el rendimiento y posiblemente provocar que se agote el tiempo de espera de su solicitud. Tenga cuidado con las consultas que redacta. Use las opciones $top, $filter y $orderby para controlar el número total de registros devueltos.
El siguiente ejemplo incluye una sola expansión de Account_Tasks y contact_customer_accounts mientras recupera registros de cuenta. El encabezado de solicitud Prefer: odata.maxpagesize=1 garantiza que solo se devuelva un registro de cuenta en la primera página.
Solicitud:
GET [Organization URI]/api/data/v9.2/accounts?$select=name,accountid
&$expand=Account_Tasks($select=subject),contact_customer_accounts($select=fullname)
Prefer: odata.maxpagesize=1
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Respuesta:
HTTP/1.1 200 OK
Content-Type: application/json; odata.metadata=minimal
Preference-Applied: odata.maxpagesize=1
OData-Version: 4.0
{
"@odata.context": "[Organization URI]/api/data/v9.2/$metadata#accounts(name,accountid,Account_Tasks(subject),contact_customer_accounts(fullname))",
"value": [
{
"@odata.etag": "W/\"80649578\"",
"name": "Litware, Inc. (sample)",
"accountid": "78914942-34cb-ed11-b596-0022481d68cd",
"Account_Tasks": [
{
"@odata.etag": "W/\"80730894\"",
"subject": "Task 1 for Litware",
"_regardingobjectid_value": "78914942-34cb-ed11-b596-0022481d68cd",
"activityid": "be9f6557-e2cc-ed11-b597-000d3a993550"
},
{
"@odata.etag": "W/\"80730903\"",
"subject": "Task 2 for Litware",
"_regardingobjectid_value": "78914942-34cb-ed11-b596-0022481d68cd",
"activityid": "605dbd65-e2cc-ed11-b597-000d3a993550"
},
{
"@odata.etag": "W/\"80730909\"",
"subject": "Task 3 for Litware",
"_regardingobjectid_value": "78914942-34cb-ed11-b596-0022481d68cd",
"activityid": "a718856c-e2cc-ed11-b597-000d3a993550"
}
],
"Account_Tasks@odata.nextLink": "[Organization URI]/api/data/v9.2/accounts(78914942-34cb-ed11-b596-0022481d68cd)/Account_Tasks?$select=subject",
"contact_customer_accounts": [
{
"@odata.etag": "W/\"80648695\"",
"fullname": "Susanna Stubberod (sample)",
"_parentcustomerid_value": "78914942-34cb-ed11-b596-0022481d68cd",
"contactid": "70bf4d48-34cb-ed11-b596-0022481d68cd"
}
],
"contact_customer_accounts@odata.nextLink": "[Organization URI]/api/data/v9.2/accounts(78914942-34cb-ed11-b596-0022481d68cd)/contact_customer_accounts?$select=fullname"
}
],
"@odata.nextLink": "[Organization URI]/api/data/v9.2/accounts?$select=name,accountid&$expand=Account_Tasks($select=subject),contact_customer_accounts($select=fullname)&$skiptoken=%3Ccookie%20pagenumber=%222%22%20pagingcookie=%22%253ccookie%2520page%253d%25221%2522%253e%253caccountid%2520last%253d%2522%257b7A914942-34CB-ED11-B596-0022481D68CD%257d%2522%2520first%253d%2522%257b78914942-34CB-ED11-B596-0022481D68CD%257d%2522%2520%252f%253e%253c%252fcookie%253e%22%20istracking=%22False%22%20/%3E"
}
Compare esta respuesta con el siguiente ejemplo, que incluye un anidado $expand. Para ver que solo la @odata.nextLink dirección URL del resultado de la cuenta contiene información de paginación, desplácese horizontalmente por la respuesta de ejemplo.
$expand anidado en propiedades de navegación valoradas como colección
Si usa un elemento anidado $expand en cualquier parte de la consulta e incluye el encabezado de solicitud Prefer: odata.maxpagesize, Dataverse aplica la paginación a cada una de las colecciones expandidas.
Cada propiedad de navegación expandida con valor de colección devuelve una URL <property>@odata.nextLink que incluye información de paginación. Puede usar esa dirección URL para enviar una solicitud independiente GET que devuelve el siguiente conjunto de registros que no se incluyeron en la solicitud original.
No puede usar las opciones $top o $orderby para limitar la cantidad total de registros devueltos con un $expand anidado. El servicio devuelve el siguiente error si usa estas opciones:
{
"error": {
"code": "0x80060888",
"message": "Only $select and $filter clause can be provided while doing $expand on many-to-one relationship or nested one-to-many relationship."
}
}
El siguiente ejemplo se basa en el ejemplo anterior y utiliza los mismos datos. La única diferencia es la adición en la URL de este $expand anidado en una propiedad de navegación de un solo valor para devolver el usuario propietario del contacto: ;$expand=owninguser($select=fullname).
Solicitud:
GET [Organization URI]/api/data/v9.2/accounts?$select=name,accountid
&$expand=Account_Tasks($select=subject),contact_customer_accounts($select=fullname;
$expand=owninguser($select=fullname))
Prefer: odata.maxpagesize=1
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Respuesta:
HTTP/1.1 200 OK
Content-Type: application/json; odata.metadata=minimal
Preference-Applied: odata.maxpagesize=1
OData-Version: 4.0
{
"@odata.context": "[Organization URI]/api/data/v9.2/$metadata#accounts(name,accountid,Account_Tasks(subject),contact_customer_accounts(fullname,owninguser(fullname)))",
"value": [
{
"@odata.etag": "W/\"80649578\"",
"name": "Litware, Inc. (sample)",
"accountid": "78914942-34cb-ed11-b596-0022481d68cd",
"Account_Tasks": [
{
"subject": "Task 1 for Litware",
"activityid": "be9f6557-e2cc-ed11-b597-000d3a993550"
}
],
"Account_Tasks@odata.nextLink": "[Organization URI]/api/data/v9.2/accounts(78914942-34cb-ed11-b596-0022481d68cd)/Account_Tasks?$select=subject,description&$skiptoken=%3Ccookie%20pagenumber=%222%22%20pagingcookie=%22%253ccookie%2520page%253d%25221%2522%2520countOfRecords%253d%25221%2522%253e%253cactivityid%2520last%253d%2522%257bbe9f6557-e2cc-ed11-b597-000d3a993550%257d%2522%2520first%253d%2522%257bbe9f6557-e2cc-ed11-b597-000d3a993550%257d%2522%2520%252f%253e%253c%252fcookie%253e%22%20istracking=%22False%22%20/%3E",
"contact_customer_accounts": [
{
"fullname": "Susanna Stubberod (sample)",
"contactid": "70bf4d48-34cb-ed11-b596-0022481d68cd",
"owninguser": {
"fullname": "System Administrator",
"systemuserid": "4026be43-6b69-e111-8f65-78e7d1620f5e",
"ownerid": "4026be43-6b69-e111-8f65-78e7d1620f5e"
}
}
],
"contact_customer_accounts@odata.nextLink": "[Organization URI]/api/data/v9.2/accounts(78914942-34cb-ed11-b596-0022481d68cd)/contact_customer_accounts?$select=fullname&$expand=owninguser($select=fullname)&$skiptoken=%3Ccookie%20pagenumber=%222%22%20pagingcookie=%22%253ccookie%2520page%253d%25221%2522%2520countOfRecords%253d%25221%2522%253e%253ccontactid%2520last%253d%2522%257b70bf4d48-34cb-ed11-b596-0022481d68cd%257d%2522%2520first%253d%2522%257b70bf4d48-34cb-ed11-b596-0022481d68cd%257d%2522%2520%252f%253e%253c%252fcookie%253e%22%20istracking=%22False%22%20/%3E"
}
],
"@odata.nextLink": "[Organization URI]/api/data/v9.2/accounts?$select=name,accountid&$expand=Account_Tasks($select=subject,description),contact_customer_accounts($select=fullname;$expand=owninguser($select=fullname))&$skiptoken=%3Ccookie%20pagenumber=%222%22%20pagingcookie=%22%253ccookie%2520page%253d%25221%2522%2520countOfRecords%253d%25221%2522%253e%253caccountid%2520last%253d%2522%257b78914942-34cb-ed11-b596-0022481d68cd%257d%2522%2520first%253d%2522%257b78914942-34cb-ed11-b596-0022481d68cd%257d%2522%2520%252f%253e%253c%252fcookie%253e%22%20istracking=%22False%22%20/%3E"
}
Compare esta respuesta con el ejemplo anterior, que no incluye un anidado $expand. En esta respuesta:
- El encabezado de solicitud de
Prefer: odata.maxpagesize=1se aplica a los registros detaskdevueltos conAccount_Tasks. - La respuesta devuelve solo una tarea en lugar de tres.
- La URL
Account_Tasks@odata.nextLinkdevuelve las siguientes dos tareas. - Desplácese horizontalmente la respuesta de ejemplo para ver que
Account_Tasks@odata.nextLinklas direcciones URL ,contact_customer_accounts@odata.nextLinky@odata.nextLinkcontienen información de paginación.
$expand anidada con relaciones N:N
Cuando una propiedad de navegación con valores de colección representa una relación N:N, se obtiene el siguiente error al usar instrucciones anidadas $expand :
{
"error": {
"code": "0x80060888",
"message": "The navigation property '<NAME>' cannot be expanded. Only many-to-one relationships are supported for nested expansion."
}
}
Por ejemplo, mediante el uso de la tabla Dynamics Lead, que tiene una contactleads_association relación N:N con la tabla de contactos, la consulta siguiente devuelve el error porque incluye ;$expand=createdby.
GET [Organization URI]/contacts?$select=fullname$expand=contactleads_association($select=fullname;$expand=createdby)
Para evitar este error, construya la consulta mediante FetchXml. Por ejemplo:
<fetch>
<entity name='contact'>
<attribute name='fullname' />
<link-entity name='contactleads'
from='contactid'
to='contactid'
alias='cl'>
<link-entity name='lead'
from='leadid'
to='leadid'
alias='lead'>
<attribute name='fullname' />
<link-entity name='systemuser'
from='systemuserid'
to='createdby'
alias='systemuser'>
<attribute name='fullname' />
</link-entity>
</link-entity>
</link-entity>
</entity>
</fetch>
Obtenga más información sobre cómo unir tablas mediante relaciones de varios a varios con FetchXML
Pasos siguientes
Obtenga información sobre cómo ordenar filas.