Saltar al contenido

Entity framework Code First Relación uno a uno

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *