c# - 动态 CRM : creating Connection entities via API

标签 c# dynamics-crm-2011

因此,Dynamics CRM 中的连接提供了一种将事物链接在一起的通用方法。

在内部,Connections 实体具有 Record1Id 属性和 Record2Id 属性等。

当您创建 connection via the UI , CRM 实际上“在数据库的连接表中创建了两个条目。每个条目都允许您从原始记录或相关记录中搜索相关记录。

也就是说,如果您连接 A 和 B,它会将两行保存到(幕后)表中:

  • Record1Id = A 和 Record2Id = B
  • 还有一个 Record1Id = B 和 Record2Id = A

这是为了使搜索连接更容易。如果您对连接进行高级查找,则只需“单向”搜索。

所以我的问题是:

当您通过 API(后期绑定(bind))创建连接时,它是这样的:

Entity connection = new Entity("connection");
connection["record1id"] = new EntityReference("contact", someContactId);
connection["record1objecttypecode"] = new OptionSetValue(2);
connection["record1roleid"] = new EntityReference("connectionrole", someConnectionRoleId);
connection["record2id"] = new EntityReference("incident", someCaseId);
connection["record2objecttypecode"] = new OptionSetValue(122);
connection["record2roleid"] = new EntityReference("connectionrole", someOtherConnectionRoleId);
var newId = service.Create(connection);

...是否足以像上面那样“单向”创建它们,然后在幕后 CRM 将创建双向连接?
...或者您是否需要在两个方向上手动创建它们? (通过保存两次并交换 record1id record2id 值等)

或者换句话说,用于连接的 CRM API 是否封装了“它实际上在幕后的两个连接”功能,还是您需要自己手动处理?

最佳答案

您只需要创建一个连接记录。需要注意的一件事是我认为您不需要像上面那样设置类型代码。只需在实体引用中设置逻辑名称就足够了。这是来自 SDK 的示例:

Connection newConnection = new Connection
{
    Record1Id = new EntityReference(Account.EntityLogicalName,
        _accountId),
    Record1RoleId = new EntityReference(ConnectionRole.EntityLogicalName,
        _connectionRoleId),                             
    Record2RoleId = new EntityReference(ConnectionRole.EntityLogicalName,
        _connectionRoleId),                            
    Record2Id = new EntityReference(Contact.EntityLogicalName,
        _contactId)
};
_connectionId = _serviceProxy.Create(newConnection);

关于c# - 动态 CRM : creating Connection entities via API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15811518/

相关文章:

c# - 创建一个类似字典的存储来保存有关各种董事会状态的元信息

c# - 在 C# 的反序列化过程中创建指向父对象的指针

c# - Xamarin Android C# 视频大小调整

dynamics-crm-2011 - crm webapi 中的多级扩展

dynamics-crm-2011 - 如何从 DB CRm 2011 中提取插件 dll

c# - CRM 2011 获取没有早期绑定(bind)类型的自定义实体记录属性

C# 在垃圾收集之前查找特定类的未使用对象

c# - TCPClient 流不规则?

sql-server - 如何避免在 Dynamics CRM 2011 SQL 报表中嵌入连接字符串?

c# - 使用分页 cookie 的 MS Dynamics REST API FetchXML