It’s common to use
string to represent entity ids because these types are well-supported by databases. The problems come when you have methods with multiple parameters of the same type. In this case, it’s easy to mix up parameters when calling these methods.
Note: If you use a
struct to wrap the primitive type, you’ll get the same performance as using the primitive type directly.