我正在构建一个 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]?