當列名更改錯誤時,EntityFramework是無效的列名

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

我正在構建一個MVC4應用程序並使用Entityframework。我正在使用代碼第一模型。

我的Project類如下:

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

        public ProjectContact BillContact { get; set; }

        public ProjectContact ProjectContact { get; set; }
     }

我的ProjectContact類如下:

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

        public ProjectContact BillContact { get; set; }

        public ProjectContact ProjectContact { get; set; }
     }

EntityFramework生成的數據庫中首先使用Code

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

        public ProjectContact BillContact { get; set; }

        public ProjectContact ProjectContact { get; set; }
     }

直到現在它工作正常

現在,當我將[ApprovalContact_ProjectId]列更改為[ApprovalContact]並嘗試在數據庫中插入項目時,我收到錯誤:無效的列名稱'ApprovalContact_ProjectContactId'。

當我嘗試在模型構建地圖的型號名稱,收到錯誤:Models.ProjectContact必須是非可空

如何告訴DbContext[ApprovalContact_ProjectId]映射到[ApprovalContact]

一般承認的答案

你有沒有嘗試過註釋

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

我在以下位置找到了: 實體框架代碼優先:如何為“默認”值註釋外鍵?

我還建議您查看: https//entityframework.codeplex.com/workitem/1226




許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因