如何将早期绑定属性名称作为字符串常量?

时间:2016-07-29 08:30:07

标签: c# dynamics-crm

上下文

我正在使用crmsvcutil来生成早期绑定实体。我也在使用实体名称字符串常量MyEntity.EntityLogicalName,例如在以下语句中(使用备用键):

 var reference = new EntityReference(MyEntity.EntityLogicalName, "my_attribute_name", myValue)

问题

我想消除" my_attribute_name"语句中的字符串文字。我该怎么做?

不幸的是,我无法在生成的C#模型中找到它。

错过了什么?如果没有,可能有一个crmsvcutil的扩展(类似于选项集生成器sameple?

1 个答案:

答案 0 :(得分:1)

要回答这个问题,您可以使用C#6 nameof()表达式来获取属性的名称。如果将名称转换为小写,则最终得到逻辑名称:

var logicalName = nameof(MyEntity.MyAttributeValue).ToLower();

话虽如此,我很少发现自己不得不做这样的事情。通常,您可以使用Entity.ToEntityReference()来获得更强类型的方法。

此外,您用于EntityReference的构造函数仅用于替代密钥(否则只会使用stringGuid的{​​{3}} )