【发布时间】:2013-04-04 22:55:15
【问题描述】:
因此,Dynamics CRM 中的连接提供了一种将事物链接在一起的通用方式。
在内部,Connections 实体具有 Record1Id 属性和 Record2Id 属性等。
当您创建connection via the UI 时,CRM 实际上“在数据库的 Connection 表中创建了两个条目。每个条目都允许您从原始记录或相关记录中搜索相关记录。"
也就是说,如果你连接A和B,它会将两行保存到(幕后)表中:
- 一个 Record1Id = A 和 Record2Id = B
- 还有一个 Record1Id = B 和 Record2Id = A
这是为了使搜索连接更容易。如果您对连接进行高级查找,则只需“单向”进行搜索。
所以我的问题是:
当您通过 API(后期绑定)创建连接时,如下所示:
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 for Connections 是否封装了“它实际上是在幕后的两个连接”功能,还是您需要自己手动处理?
【问题讨论】:
-
这似乎比你向 StackOverflow 提问要快...
-
我正在使用 Crm Online - 我无权访问后台数据库。另外,如果其他人想知道同样的事情,这个问题有望得到答案......
标签: c# dynamics-crm-2011