ASP.NETMVC5在更改类数据批注时会出现异常错误吗?
我创建了一个模型类EmployeeASP.NETMVC5在更改类数据批注时会出现异常错误吗?,asp.net,sql-server-2012,asp.net-mvc-5,Asp.net,Sql Server 2012,Asp.net Mvc 5,我创建了一个模型类Employee public class Employee { public int ID { get; set; } [DisplayName("Employee Name")] [Required(ErrorMessage = "Employee Name Is Required") ] public string Name { get; set; } public int Email { get; set; } publ
public class Employee
{
public int ID { get; set; }
[DisplayName("Employee Name")]
[Required(ErrorMessage = "Employee Name Is Required") ]
public string Name { get; set; }
public int Email { get; set; }
public double Salary { get; set; }
public int Address { get; set; }
}
当我运行应用程序时,它工作正常,之后当我看到字段地址为Int时,我
将其更改为字符串或:
public class Employee
{
public int ID { get; set; }
[DisplayName("Employee Name")]
[Required(ErrorMessage = "Employee Name Is Required") ]
public string Name { get; set; }
public string Email { get; set; }
public double Salary { get; set; }
public string Address { get; set; }
}
运行应用程序时,会出现以下错误:
An exception of type 'System.InvalidOperationException' occurred in ProductApps.dll but was not handled in user code
Additional information: The model backing the 'ProductContext' context has changed since the database was created. Consider using Code First Migrations to update the database (http://go.microsoft.com/fwlink/?LinkId=238269).
出现此异常的原因是,通过更改实体中的属性类型,实体框架需要更新数据库以反映您的更改 在本例中,需要将Employee表中的电子邮件列更新为int类型而不是string类型。为了强制EntityFramework执行此操作,您需要运行必要的控制台命令 要运行控制台命令,请转到工具>Nuget Package Manager>Package Manager控制台并运行以下命令: 添加迁移UpdatedEmailType,然后添加更新数据库。如果您遇到一个错误,说没有启用迁移,那么您需要运行以下命令来启用数据库迁移:enable migrations 注:
虽然数据库迁移对创建数据库模式有很大帮助,但有时这可能是一项艰巨的工作。如果您仍然遇到问题,则始终可以禁用迁移并在SQL Server Management Studio或Visual Studio的数据库管理器工具中手动更新数据库。您必须更新数据库。在PackageManager控制台中:更新数据库您必须首先启用迁移我是新手,请您解释一下如何查看我发布的链接。1工具–>库包管理器–>包管理器控制台2如果未启用迁移=>在同一控制台中的包管理器控制台3更新数据库-v中运行启用迁移命令