【问题标题】:Dynamic API - Associate ManyToMany Entities on Create动态 API - 在创建时关联多对多实体
【发布时间】:2021-08-20 15:53:44
【问题描述】:

是否可以在 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 的唯一途径

【问题讨论】:

标签: dynamics-crm microsoft-dynamics dynamics-crm-online dynamics-crm-365 dynamics-crm-webapi


【解决方案1】:

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 中查找正确的集合值导航属性

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多