我需要在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
如何获取姓名字符串?
答案 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;