With Commerce Server "Mojave", you can create your own types that inherit from the ICommerceEntity interface and then add property getters/setters to strongly type your properties. 

For example:
public class CatalogEntity : ICommerceEntity

{

public string Id

{

get { return this._commerceEntity.GetPropertyValue(CommerceEntity.PropertyName.Id) as string; }

set { this._commerceEntity.SetPropertyValue(CommerceEntity.PropertyName.Id, value); }

}

}

Tom