获取 Dynamics CRM 联系人 parentcustomerid

Get Dynamics CRM contact parentcustomerid

我需要在 Dynamics CRM 中检索联系人的全名和父帐户。 我正在使用以下代码:

    ColumnSet cols = new ColumnSet(new String[] { "fullname", "parentcustomerid" });
    Entity retrContact = (Entity)orgService.Retrieve("contact", contactID, cols);
    fullName = retrContact.Attributes["fullname"];
    parentAccount = retrContact.Attributes["parentcustomerid"];
    nameStr = fullName.ToString();
    companyStr = parentAccount.ToString();

我的问题是 companyStr 得到的是 "Microsoft.Xrm.Sdk.EntityReference" 而不是 Name 值。 parentAccount 包含以下内容:

    LogicalName "account"   string
    Name    "Microsoft Corp"    string
    RowVersion  null    string

如何获取名称字符串?

您可能应该从服务器获取 parentAccount(请参阅 EntityReference.Name Property

This property is not automatically populated unless the EntityReference object has been retrieved from the server.

例如您应该使用 Id parentcustomerid 从服务器获取数据,有点像

Entity Account = service.Retrieve(Account.EntityLogicalName, parentAccount.Id, new ColumnSet(true));

您肯定可以将 Account.EntityLogicalName 替换为 "account" 字符串。

parentcustomerid 对象是一个具有您要查找的名称的 EntityReference 对象。此代码有效:

ColumnSet cols = new ColumnSet(new string[] { "fullname", "parentcustomerid" });
Entity retrContact = (Entity)orgService.Retrieve("contact", new Guid("{9DF2ACC2-0212-E611-80E4-6C3BE5A83B1C}"), cols);
var parentAccount = (EntityReference)retrContact.Attributes["parentcustomerid"];
var companyStr = parentAccount.Name;