Sto costruendo un'applicazione MVC4 e usando Entityframework. Sto usando il primo modello del codice.
La mia classe di progetto è la seguente:
public class Project
{
[Key]
public int ProjectId { get; set; }
public ProjectContact ApprovalContact { get; set; }
public ProjectContact BillContact { get; set; }
public ProjectContact ProjectContact { get; set; }
}
La mia classe ProjectContact è la seguente:
public class ProjectContact
{
[Key]
public int ProjectContactId { get; set; }
public string JobTitle { get; set; }
public string Number { get; set; }
public string ProjectContactMSFNo { get; set; }
public string FullName { get; set; }
}
Mentre si utilizza il codice prima nel database di EntityFramework generato
SELECT [ProjectId]
,[ApprovalContact_ProjectId]
,[BillContact_ProjectId]
,[ProjectContact_ProjectId]
FROM [Db].[dbo].[Projects]
Fino ad ora sta funzionando bene
Ora Quando ho modificato la colonna [ApprovalContact_ProjectId] in [ApprovalContact] e provo ad inserire il progetto nel database ottengo un errore: Nome colonna non valido 'ApprovalContact_ProjectContactId'.
quando provo a mappare il nome del modello in modelBuilder ottengo ERRORE: Models.ProjectContact deve essere non annullabile
Come dire a DbContext di mappare [ApprovalContact_ProjectId] a [ApprovalContact] ??
Hai provato a seguire l'annotazione
[ForeignKey("ApprovalContactID")]
public ProjectContact ApprovalContact { get; set; }
Ho trovato questo a: Entity Framework Code First: come annotare una chiave esterna per un valore "Default"?
e ti suggerisco anche di dare un'occhiata a: https://entityframework.codeplex.com/workitem/1226