none
Relación de entidades de 1 a 1 con Data Annotations RRS feed

  • Pregunta

  • Hola, tengo 2 entidades: Employee y Department y las siguientes relaciones:

    1. Employee.DepartmentId => Department.DepartmentId (n a 1)

    2. Department.ManagerId => Employee.EmployeeId (1 a 1)

    Entonces una FK debería permitir nulos sino no podría insertar en ninguna table, esta sería la de Department.ManagerId, entonces podría crear departamentos sin ManagerId lo cual esta bien, sin embargo no he podido establecer esta relación con Data Annotations. Tengo lo siguiente:

        public class Department
        {
            [Key]
            public int DepartmentId { get; set; }
    
            [ForeignKey("Manager")]
            public int? ManagerId { get; set; }
    
            [Required]
            public string Name { get; set; }    
    
            //Navigation Properties
            public virtual Employee Manager { get; set; }
            public virtual ICollection<Employee> Employees { get; set; }
        }
    
        public class Employee
        {
            [Key]
            public int PersonId { get; set; }
    
            [Required,ForeignKey("Department")]
            public int DepartmentId { get; set; }
    
            [Required]
            public string FirstName { get; set; }
    
            [Required]
            public string LastName { get; set; }
    
            //Navigation Properties
            public virtual Department Department { get; set; }
        }

    Al parecer esto funciona, sin embargo me esta creando una columna Employee.Department_DepartmentId y no quiero que haga eso sino que utilice DepartmentId.

    Gracias.

    viernes, 5 de febrero de 2016 22:36

Todas las respuestas