Luego de consultar con especialistas en la materia, programadores de deferentes ramas y profesores hemos dado con la solución al dilema y la plasmamos en esta publicación.
Solución:
Extranjero keys no son compatibles con el intento 1:1:
public class User
[Key]
public Guid Id get; set;
public string Name get; set;
public string Lastname get; set;
public string Username get; set;
public virtual UserActivation UserActivation get; set;
public class UserActivation
[Key]
[ForeignKey("User")]
public Guid Id get; set;
public bool Active get; set;
public virtual User User get; set;
No se puede determinar el extremo principal de una asociación entre los tipos ‘Model.PersonPhoto’ y ‘Model.Person’. El extremo principal de esta asociación debe configurarse explícitamente mediante la API de relación fluida o las anotaciones de datos.
Julie Lehrman analiza esto en su libro Code First:
“Este problema se resuelve más fácilmente mediante el uso de una anotación ForeignKey en la clase dependiente para identificar que contiene el foráneo key. Al configurar relaciones uno a uno, Entity Framework requiere que el principal key del dependiente también sea el extranjero key. En nuestro caso PersonPhoto es el dependiente y su keyPersonPhoto.PersonId, también debe ser el extranjero key. Continúe y agregue la anotación ForeignKey a la propiedad PersonPhoto.PersonId, como se muestra en el Ejemplo 4-21. Recuerde especificar la propiedad de navegación para la relación al agregar la anotación ForeignKey”.
Comentarios y valoraciones del post
Recuerda que puedes agregar una reseña si hallaste tu duda justo a tiempo.