Entity framework 在代码优先方法中更新模型属性
我无法更新任何属性的任何属性名称或数据批注 这里是代码 类:Entity framework 在代码优先方法中更新模型属性,entity-framework,code-first,Entity Framework,Code First,我无法更新任何属性的任何属性名称或数据批注 这里是代码 类: public class Student { public Student() { } [Key] public int StudentID { get; set; } public string StudentName { get; set; } public DateTime? DateOfBirth { get; set; } public byt
public class Student
{
public Student()
{
}
[Key]
public int StudentID { get; set; }
public string StudentName { get; set; }
public DateTime? DateOfBirth { get; set; }
public byte[] Photo { get; set; }
public decimal Height { get; set; }
public float Weight { get; set; }
public Standard Standard { get; set; }
}
上下文
public class SchoolContext : DbContext
{
public SchoolContext()
: base("name=SchoolDBConnectionString")
{
}
public DbSet<Student> Students { get; set; }
public DbSet<Standard> Standards { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
}
}
和上下文类(关于模型创建)
modelBuilder.Entity().HasRequired(p=>p.StudentName);
当我运行此程序时,出现错误:
EntityFramework.dll中发生类型为“System.InvalidOperationException”的未处理异常
其他信息:“SchoolContext”上下文的支持模型自数据库创建以来已更改。考虑使用代码第一迁移来更新数据库。
如果我删除数据库并运行此程序,则工作正常。但我不想在属性更改时删除数据库
你能提供一些信息吗。如何更新模型属性?您可以使用迁移,请参阅我已运行CM>更新数据库-详细信息,然后出现错误:未应用自动迁移,因为这将导致数据丢失。在DBMIGRIONSConfiguration上将AutomaticMigrationDataLossAllowed设置为“true”,以允许应用自动迁移,即使它们可能导致数据丢失。或者,使用带有“-Force”选项的更新数据库,或者构建显式迁移。在CM>Update Database-Force之后,您可以使用迁移,请参阅我已运行CM>Update Database-Verbose,然后出现错误:未应用自动迁移,因为这将导致数据丢失。在DBMIGRIONSConfiguration上将AutomaticMigrationDataLossAllowed设置为“true”,以允许应用自动迁移,即使它们可能导致数据丢失。或者,使用带有“-Force”选项的更新数据库,或者构建显式迁移。CM>更新数据库后-强制然后正常工作
[Required]
public string StudentName { get; set; }
modelBuilder.Entity<Student>().HasRequired(p => p.StudentName);