In Dynamics CRM there is a difference between CRM Entities and Fields Display Name, Entity/Field Schema Name and Entity/Field Logical name (also known as Attribute name).
Display name is clear. It is the name shown to the CRM user and can have spaces, etc. Then you got these two:
- SchemaName: Name that will be used to create the database column for the field. This name can be mixed case. The casing that you use sets the name of the object generated for programming with strong types or when you use the REST endpoint. So it could be something like new_FieldSchemaName
- LogicalName: This is the name, auto generated based on Schema name but the system sets it to all lowercase letters.
Every entity and field has a schema name (DB name – mixed case) and a logical name (all lower case).
Schema name retains the casing but logical name will always be lowercase.
When writing code to call/use fields, we always use schema names (DB names) not logical/attribute name.
As you can see from the following screenshot, you decide the display and schema name during creation while the attribute name will be generated by Dynamics CRM exactly as the schema name but all lower case.
Once your field is created, you can see in the following screenshot the Name (logical name), the schema name (DB name – mix case) and the Display name (the one the customer sees).
The same applies to entities.
This post may sound like it is targeting only those who are starting to work with Dynamics CRM for the first time, but in reality I have met a number of Dynamics CRM developers who didn’t know this information. Hence, I hope this is useful. Please comment with your views below.