为什么 fetchXML Web API url 需要实体名称?

问题描述

为了制定 FetchXML Web 请求,我必须两次使用实体名称,一次(以复数形式)在 URL 中,一次(以单数形式)在 fetchXML 查询文档中:

https://abcdef.ghi/fghjkl/api/data/v8.0/transactioncurrencies=<fetch ... <entity name='transactioncurrency'>... >
                                        ^^^^^^^^^^^^^^^^^^^^^                          ^^^^^^^^^^^^^^^^^^^

我想知道为什么这是因为我觉得这是多余的。

问题的背景是,我想提交任何 fetch-XML 文档,而无需先将其解析为 entity name='....',然后使用在 URL 中找到的实体名称来提交文档。

解决方法

我没有明确的答案,但 OData 规范可能需要它,请记住,在此特定查询中,fetchxml 是一个参数,它没有(明确)定义您正在操作的实体。

>

请注意复数/单数形式,大多数情况下您有复数形式,在某些情况下(自定义实体)您会得到混合结果,在某些情况下(标准实体)您会得到完全不同的结果,例如“ webresourceset”,即“webresource”实体的集合。

我的意见?他们应该在 OData 中使用单数形式

,

也许这会有所帮助,根据 CRM 的文档,在 web api 中,他们使用实体集的名称来制作 url。该实体集对应实体元数据的“LogicalCollectionName”属性值。

你可以像这样检索这个属性值:

AddChallengeView

结果如下:

  .../api/data/v9.0/EntityDefinitions?$filter=LogicalName eq 'xxxx'&$select=LogicalCollectionName

正如他们所指出的,甚至可以更改此名称以更改调用 url 的方式:

https://docs.microsoft.com/en-us/powerapps/developer/data-platform/webapi/web-api-types-operations#change-the-name-of-an-entity-set

问候

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...