Mejoras al Modelo

Aqui les dejo algunas mejoras que en mi opinion hacen el modelo más mantenible y modificable:
1 - Las validaciónes del view model y el model/Database estaban out of sync. Resultado de la duplicación de codigo para la misma funcionalidad.
2 - Utilizar el nombre Id para todos los Ids no es realista en mi opinion.
3 - La magia de los migrations es buena, pero en pequeñas dosis y solo para cambios. La definición del modelo debe estar alojada en las clases del modelo y no enterrada en migrations. Este cambio permite tener toda la información JobOpportunities en su type.

Otros comentarios en el codigo.
En el caso previo la propiedad CustomerId ni siquiera es necesaria, pero a mi me gusta ponerla porque facilita pasar el Id si necesito retornar la entidad en un JSON serializado o algo así. 

Es lo mismo que acceder por `Order.Customer.Id`