【问题标题】:Unable to get name from EntityReference无法从 EntityReference 获取名称
【发布时间】:2014-12-13 07:07:44
【问题描述】:

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

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

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

【问题讨论】:

  • 您是否在记录中填写了primary field?这通常是<your_prefix>_name 字段(我猜是mc_name),但可以不同。签入 solution -> entity properties -> primary fields
  • 是的,对应的name字段,'mc_name'有一个有效值。

标签: dynamics-crm dynamics-crm-2015


【解决方案1】:

EntityReferenceName 属性在您从属性强制转换时并不总是被填充。 如果要获取名称,则需要进行额外的检索。

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

此属性可以包含一个值或空值。该属性不 除非 EntityReference 对象已被自动填充 从服务器检索。

【讨论】:

    【解决方案2】:
    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();
    

    【讨论】:

    • 我们可以在ColumnSet 中只指定new_name,因为我想单独检索名称。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-08
    • 1970-01-01
    相关资源
    最近更新 更多