c# - 在 Dynamics CRM 中加入约会实体所需的参加者和联系人实体

标签 c# dynamics-crm dynamics-365

我想以编程方式提取所有约会实体及其所需与会者的完整信息(在我的情况下始终是联系人类型)。

基于约会实体“必需的参加者”属性,在约会实体和联系人实体之间加入的最佳方式是什么?

最佳答案

要获得“Required Attentees”,您需要在 AppointmentActivityParty 实体之间进行连接,然后根据 ParticipationTypeMask 进行过滤对于“必需的与会者”,这是 5。 此外,您需要在 ActivityPartyContact 实体之间进行连接。

您的代码可能与此类似:

//Create a query expression specifying the link entity alias 
//and the columns of the link entity that you want to return
QueryExpression qe = new QueryExpression();
qe.EntityName = "appointment";
qe.ColumnSet = new ColumnSet(true);

//LinkEntity for ActivityParty                
var activityParty = new LinkEntity()
{
    EntityAlias = "activityparty",
    JoinOperator = JoinOperator.Inner,
    Columns = new ColumnSet(true),
    LinkFromEntityName = "appointment",
    LinkFromAttributeName = "activityid",
    LinkToEntityName = "activityparty",
    LinkToAttributeName = "activityid",
    LinkCriteria = new FilterExpression
    {
        Conditions =
                   {
                       new ConditionExpression("participationtypemask", ConditionOperator.Equal, 5), //Required Attendees 
                       new ConditionExpression("partyobjecttypecode", ConditionOperator.Equal, 2),   // Contacts
                   }
    }
};

//LinkEntity for Contact                
var contact = new LinkEntity()
{
    EntityAlias = "contact",
    JoinOperator = JoinOperator.Inner,
    Columns = new ColumnSet(true),
    LinkFromEntityName = "activityparty",
    LinkFromAttributeName = "partyid",
    LinkToEntityName = "contact",
    LinkToAttributeName = "contactid",
};

activityParty.LinkEntities.Add(contact);
qe.LinkEntities.Add(activityParty);

//Get the appointments and the Linked Entities
var appointments = _orgService.RetrieveMultiple(qe);

foreach (var appointment in appointments.Entities)
{
    // Do something with the Contact Data 
    var fullname = ((AliasedValue)(appointment["contact.fullname"])).Value.ToString();
}

关于c# - 在 Dynamics CRM 中加入约会实体所需的参加者和联系人实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45141976/

相关文章:

dynamics-crm - 对于 Dynamics CRM 365 安全角色,追加和追加意味着什么?

javascript - 如何在 JavaScript 中使用 Base64String 值设置 Dynamics CRM/365 字段

azure - 使用 Azure 数据工厂将数据从 Azure SQL 数据库迁移到 Dynamics 365 for Marketing

c# - 添加和检索嵌入式资源 codedom

c# - .NET 扫描 API

c# - 模拟 IOrganizationService (Dynamics CRM) 时未过滤 LINQ 查询结果

c# - MS Dynamics 365 - 生成自定义序列号,确保唯一性

javascript - XMLHTTP 查询中的 "Resource not found for the segment *publisherguid*"用于在 CRM 中创建解决方案

c# - 尝试通过我的本地主机作为后端和 c# 作为前端为我的 MySQL 数据库创建项目

c# - Entity Framework 4 和 SYSUTCDATETIME()