0

我正在构建一个 MVC4 应用程序并使用 Entityframework。我正在使用代码优先模型。

我的项目类如下:

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 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; }

    }

在生成的EntityFramework 数据库中首先使用代码时

SELECT [ProjectId]
      ,[ApprovalContact_ProjectId]
      ,[BillContact_ProjectId]
      ,[ProjectContact_ProjectId]
  FROM [Db].[dbo].[Projects] 

到目前为止它工作正常

现在,当我将 [ApprovalContact_ProjectId] 列更改[ ApprovalContact] 并尝试在数据库中插入项目时,我收到错误:列名“ApprovalContact_ProjectContactId”无效。

当我尝试在modelBuilder中映射模型名称时,我得到ERROR:Models.ProjectContact must be non nullable

如何告诉DbContext将[ApprovalContact_ProjectId]映射到[ApprovalContact]

4

1 回答 1

1

您是否尝试过以下注释

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

我在以下位置找到了这个:Entity Framework Code First:如何为“默认”值注释外键?

我还建议您查看: https ://entityframework.codeplex.com/workitem/1226

于 2013-10-30T11:44:49.483 回答