So, if there is an entity within an aggregate what is the best/usual way to prevent outside world from doing something like Aggregate.Entity.SomeMethod()? (in case
It is a question of visibility scope. It would depend on the programming language you are using. In java for example, I put an aggregate in a package. The aggregate root entity will be public. The others will have package scope, ie, no keyword for visibility.