EntityFramework cuando el nombre de columna cambiado error es Nombre de columna no válido

asp.net-mvc-4 entity-framework entity-framework-6

Pregunta

Estoy creando una aplicación MVC4 y utilizando Entityframework. Estoy usando el código del primer modelo.

Mi clase de proyecto es la siguiente:

public class Project
    {
     [Key]
       public int ProjectId { get; set; }
       public ProjectContact ApprovalContact { get; set; }

        public ProjectContact BillContact { get; set; }

        public ProjectContact ProjectContact { get; set; }
     }

Mi clase ProjectContact es la siguiente:

public class Project
    {
     [Key]
       public int ProjectId { get; set; }
       public ProjectContact ApprovalContact { get; set; }

        public ProjectContact BillContact { get; set; }

        public ProjectContact ProjectContact { get; set; }
     }

Mientras se usa el Código primero en la base de datos EntityFramework generada es

public class Project
    {
     [Key]
       public int ProjectId { get; set; }
       public ProjectContact ApprovalContact { get; set; }

        public ProjectContact BillContact { get; set; }

        public ProjectContact ProjectContact { get; set; }
     }

Hasta ahora está funcionando bien

Ahora, cuando cambié la columna [ApprovalContact_ProjectId] por [ApprovalContact] e intenté insertar el proyecto en la base de datos, obtengo el error: Nombre de columna no válido 'ApprovalContact_ProjectContactId'.

cuando intento asignar el nombre del modelo en modelBuilder, obtengo ERROR: Models.ProjectContact no debe poder ser nul

¿Cómo decirle a DbContext que asigne [ApprovalContact_ProjectId] a [ApprovalContact] ?

Respuesta aceptada

¿Has probado la siguiente anotación?

[ForeignKey("ApprovalContactID")]
public ProjectContact ApprovalContact { get; set; }

Encontré esto en: Entity Framework Code First: ¿cómo anotar una clave externa para un valor "Predeterminado"?

y también le sugiero que visite: https://entityframework.codeplex.com/workitem/1226




Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué