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



上下文

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

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

问题

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

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

错过了什么吗?如果不是,则可能存在对crmsvcutil的扩展(类似于选项集生成器sameple?

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

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

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

此外,用于EntityReference的构造函数仅用于备用密钥(否则将只使用接受stringGuid的构造函数)

最新更新