I have found on a couple of occasions when we add new properties to some of the entities then although we keep up to date on the validation logic (which is just in a service class for now) but we miss the part in the update logic where in the service class we retrieve the bind from the repository and set all the properties of the entity in the repo to the model and then try and save. The effect is that the new field never gets saved because we forgot to do the assignment in the update logic.
The controller class has a nice UpdateModel(model) method which will do it all for you and make sure that it gets all the properties. This works great but it doesn't get around the problem of extra validation and the fact that the service gets the entity from the repo.
What is the best practise in the scenario where you want to use the UpdateModel method, want to do validation and are trying to stick the to repository pattern. I have purposefully left out the service class because I don't mind ditching it. It seems to be way to much hassle for what it is worth.