添加数据注释属性时,它会抛出异常

时间:2014-10-22 22:19:57

标签: sql-server asp.net-mvc data-annotations dbcontext invalidoperationexception

public class Employee {

    [Key]
    public int Id { get; set; }

    public string Name { get; set; }
    public string Address { get; set; }
    public decimal Salary { get; set; }
    public string Email { get; set; }
}

public class EmployeeContext : DbContext
{
   public DbSet<Employee> Employees { get; set; }
}  

当我向[Required(ErrorMessage = "Employee Name is required")]属性添加数据注释Name时,它会抛出InvalidOperationException。当我试图解决这个错误时,我在网上得到了这些建议:

  

这意味着您在EmployeeContext中使用的某个类已更改,但数据库尚未更新,因此现已过期。您需要更新此使用Code First迁移。

当我进行以下更改时,它现在抛出错误

public class Employee {

    [Key]
    public int Id { get; set; }

    [DisplayName("Employee Name")]
    [Required(ErrorMessage = "Employee Name is required")]

    [StringLength(35)]
    public string Name { get; set; }

    public string Address { get; set; }
    public decimal Salary { get; set; }
    public string Email { get; set; }
}

快照:

error

问题:

  1. 如果创建了数据库表,是否可以更改列?
  2. 添加数据注释属性时,它会抛出异常,为什么数据库表列不会改变?
  3. 立即沉迷于您的教程

1 个答案:

答案 0 :(得分:1)

  1. 更新数据库结构的用户Migration
  2. 没有[必填]字段名称允许null(varchar(x)null),[Required]名称更改不为null(varchar(x)not null)
  3. 如果在数据库中,是具有可为空名称的行,则更新时可能出错(使用迁移)