MVC 4 UserProfile外键/不允许空值错误

时间:2013-07-25 01:11:53

标签: c# asp.net-mvc entity-framework asp.net-mvc-4

我使用与MVC 4身份验证方法相关的实体框架。我创建了一个自定义UserProfile以包含其他一些表。

用户配置

[Table("UserProfile")]
public class UserProfile
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int UserId { get; set; }
    public string UserName { get; set; }

    public int CompanyId { get; set; }

    [ForeignKey("CompanyId")]
    public virtual Company Company { get; set; }
}

公司

public class Company
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
}

现在WebSecurity.CreateUserAndAccount("MyUser", "MyPassword");引发了以下异常:

Cannot insert the value NULL into column 'CompanyId', table 'aspnet.web-67.dbo.UserProfile'; column does not allow nulls. INSERT fails. The statement has been terminated.

我可以删除ForeignKey,但在此之后,延迟加载似乎不再起作用了。

1 个答案:

答案 0 :(得分:2)

我认为 UserProfile 表的 CompanyId 列已在数据库中创建 不允许空值 。你可以把它写成

public int? CompanyId { get; set; }

或者您必须为创建用户添加 CompanyId