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.
Creo que esta discusión se puede reducir también a una diferencia de preferencia. Trabajemos como la mayoria prefiera.