获取实体的逻辑名称

时间:2014-09-14 08:46:12

标签: c# plugins dynamics-crm-2013

我使用后期绑定并创建了一个帐户,我也创建了一个电话。我还发现了一个非常useful example的做法。唯一困扰我的是以下几行:

if (context.OutputParameters.Contains("id"))
{
  Guid id = new Guid(context.OutputParameters["id"].ToString());
  String type = "account";
  followup["regardingobjectid"] = new EntityReference(type, id);
}

假设电话的原因是帐户。嗯,确实如此,但未来可能不是。我试着得到如下类型:

if (context.OutputParameters.Contains("id"))
{
  Guid id = new Guid(context.OutputParameters["id"].ToString());
  String type = context.OutputParameters["logicalname"] as String;
  followup["regardingobjectid"] = new EntityReference(type, id);
}

然后我收到错误告诉我这样的字段不存在。字段名称错了吗?或者我使用所有错误的方法来检索实体的逻辑名称(即实体类型的实际名称,是该帐户,联系人还是crazydonkeyass)?

此外,我还不完全确定 OutputParameters 是否适合查看。建议?

1 个答案:

答案 0 :(得分:1)

这可以在context.PrimaryEntityName

中找到

修改

以下是检查这是否为帐户的示例中的位

// Obtain the target entity from the input parameters.
Entity entity = (Entity)context.InputParameters["Target"];

// Verify that the target entity represents an account.
// If not, this plug-in was not registered correctly.
if (entity.LogicalName != "account")
    return; 

我猜这就是为什么他们有帐户硬编码(丑陋!)