上下文
我正在使用crmsvcutil来生成早期绑定实体。我也在使用实体名称字符串常量MyEntity.EntityLogicalName
,例如在以下语句中(使用备用键):
var reference = new EntityReference(MyEntity.EntityLogicalName, "my_attribute_name", myValue)
问题
我想消除" my_attribute_name"语句中的字符串文字。我该怎么做?
不幸的是,我无法在生成的C#模型中找到它。
错过了什么?如果没有,可能有一个crmsvcutil的扩展(类似于选项集生成器sameple?
答案 0 :(得分:1)
要回答这个问题,您可以使用C#6 nameof()
表达式来获取属性的名称。如果将名称转换为小写,则最终得到逻辑名称:
var logicalName = nameof(MyEntity.MyAttributeValue).ToLower();
话虽如此,我很少发现自己不得不做这样的事情。通常,您可以使用Entity.ToEntityReference()
来获得更强类型的方法。
此外,您用于EntityReference
的构造函数仅用于替代密钥(否则只会使用string
和Guid
的{{3}} )