2014-12-13 79 views
0

我正在为我的插件使用CRM 2015 SDK。我想要我的代码中的实体引用的属性。我能够获得指导和逻辑名称。但是该名称对于所有实体引用字段都返回null。这里是我的代码:无法从EntityReference获取名称

EntityReference centre= ((EntityReference)quoteEntity.Attributes["mc_centre"]); 
Guid centreGuid = centre.Id; //returns Guid 
string centreName = centre.Name; //returns null 

我检查了引用实体,“中心”它使用“名称”字段,并具有有效的值。有没有人遇到同样的问题?我在代码中做错了什么?我不想要另一个服务调用来获得名称顺便说一句。

+0

你填入你的记录'主要field'?这通常是'_name'字段(我想''mc_name'),但可以不同。签入_solution_ - > _entity properties_ - > _primary fields_ – MarioZG 2014-12-13 09:45:06

+0

是的,相应的名称字段'mc_name'具有有效值。 – Mani 2014-12-14 09:34:57

回答

4

EntityReference的属性在您从属性转换时并不总是被填充。 如果你想得到名字,你需要做一个额外的检索。

这是相关的MSDN文章:EntityReference.Name Property

该属性可以包含值或空。除非EntityReference对象已从服务器检索到 ,否则此属性不会自动填充 。

4
Entity member = service.Retrieve("new_vendor", ((EntityReference)entity["new_vendorname"]).Id, new ColumnSet(true)); 

Entity member = service.Retrieve("new_vendor", Vendor.Id, new ColumnSet(true)); 


String VendorName = member.Attributes["new_name"].ToString(); 
+0

我们可以在'ColumnSet'中指定'new_name',因为我想单独检索名称。 – Mani 2014-12-31 03:25:28