When we are creating an entity field, the Name we give is its schema name. After creating field the schema name also becomes the logical name. The values are same but with one difference, the casing. Example:
- DisplayName: NewFieldName
- Name: new_NewFieldName (schema name)
- LogicalName: new_newfieldname
Where both names are used ?
SchemaName:
- early bounding (ServiceContext), crmsvutil
- REST/oData
- it will be used to create the database column
LogicalName:
- late bound programming model
- JavaScript web resources
- attribute name
- SOAP
Personally I prefer to change Schema Name to lower case so it == logical name. Why?? When using SOAP or REST in JS there is no need to change attribute names in request