我使用与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,但在此之后,延迟加载似乎不再起作用了。
答案 0 :(得分:2)
我认为 UserProfile 表的 CompanyId 列已在数据库中创建 不允许空值 。你可以把它写成
public int? CompanyId { get; set; }
或者您必须为创建用户添加 CompanyId 值