"无法将值NULL插入列"但我的专栏是Nullable ...实体框架5 asp.net MVC

时间:2013-04-12 01:23:20

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

我用asp.net MVC互联网应用开始了一个项目...... 我对默认代码进行了一些更改...... 我创建了自己的用户上下文:

public class UsersDBContext : DbContext
{

    public DbSet<UserProfile> UserProfiles { get; set; }

我对AccountModel进行了一些更改:

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

}

我添加了此列测试。如您所见,此列可以为空...... 但是在运行时我尝试注册用户时出现此错误:

无法将值NULL插入列'test'.column不允许空值。 INSERT失败。

错误发生在这一行:

WebSecurity.CreateUserAndAccount(model.UserName, model.Password);

有没有人知道任何解决方案?

编辑:迁移代码:

    public override void Up()
    {
        AlterColumn("dbo.UserProfile", "test", c => c.Int());
    }

public override void Down()
    {
        AlterColumn("dbo.UserProfile", "test", c => c.Int(nullable: false));
    }

1 个答案:

答案 0 :(得分:0)

在对数据库进行更改后,您是否更新了实体框架edmx?我发现有时在进行更改后使用edmx设计器中的更新功能效果不佳。我会从edmx设计器中删除该表,然后重新添加它,然后重建您的解决方案。