获取Dynamics CRM联系parentcustomerid

时间:2016-05-03 16:50:03

标签: crm microsoft-dynamics

我需要在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

如何获取姓名字符串?

2 个答案:

答案 0 :(得分:0)

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

  

除非已从服务器检索到EntityReference对象,否则不会自动填充此属性。

E.g。你应该使用Id parentcustomerid从服务器获取数据,有点像

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

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

答案 1 :(得分:0)

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;