动态 API - 在创建时关联多对多实体

问题描述

是否可以在 API Create 调用上关联实体,其中的关系是 ManyToManyRelationship,如下所示?

{
  "SchemaName": "testscheduleid_testid","Entity1LogicalName": "testschedule","Entity2LogicalName": "test","IntersectEntityName": "testschedule_test","Entity1IntersectAttribute": "testscheduleid","Entity2IntersectAttribute": "testid",}

Create an entity using the Web API 上的示例仅显示 OnetoMany。

或者 /tests(00000000-0000-0000-0000-000000000002)/testschedules/$ref 是通过 REST API 的唯一途径

解决方法

Web API 只有两种关系的概念:

  • 单值
  • 收藏价值

当涉及到 N:N 关系时,它们只是双方的集合价值关系。虽然它们之间存在相交实体,但在处理关系时您只需忽略它。

如果您查看当前文档,您将在此处看到一个示例Associate table rows on create

使用此代码:

    POST [Organization URI]/api/data/v9.0/accounts?$select=name&$expand=primarycontactid($select=fullname),Account_Tasks($select=subject) HTTP/1.1
    Content-Type: application/json; charset=utf-8
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    Accept: application/json
    Prefer: return=representation
    
    {
        "name": "Sample Account","primarycontactid@odata.bind": "/contacts(00000000-0000-0000-0000-000000000001)","Account_Tasks@odata.bind": [
            "/tasks(00000000-0000-0000-0000-000000000002)","/tasks(00000000-0000-0000-0000-000000000003)"
       

 ]
}

虽然这是一个一对多的关系,但使用代表 N:N 关系的正确集合值导航属性,它应该以相同的方式工作。

忽略相交实体。 在 $metadata

中查找正确的集合值导航属性

相关问答

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