我正在处理实体框架迁移。
当我更改模型并使用 add-migration 时,它运行良好,但是当我第二次更改模型并运行 add-migration 命令时,生成的文件包含我第一次和第二次所做的 sql 更改。
谁能告诉我为什么我有这种行为。
这是模型
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Department>().Property(p => p.NewCol2).HasColumnName("ColChanged");
}
public class Department
{
public int DeptId { get; set; }
public int DivNo { get; set; }
public string DeptName { get; set; }
public string NewCol2 { get; set; }
public List<Employee> Employees { get; set; }
}
public class Employee
{
public int EmpNo { get; set; }
public int DivisionNo { get; set; }
public int DeptId { get; set; }
public string EmpName { get; set; }
public Department Department { get; set; }
}
}
我想将 NewCol2 名称更改为 ColChange,我在 ModelBuilder 中编写了属性,我得到了生成的文件,如下所示。
第一个cs文件
只有向上()
AddColumn("dbo.Departments", "ColChanged", c => c.String());
当我尝试通过添加 [Required] 注释将 EMPName 更改为必需时,我得到了如下生成的文件
第二个cs文件
AddColumn("dbo.Departments", "ColChanged", c => c.String());
AlterColumn("dbo.Employees", "EmpName", c => c.String(nullable: false));
谢谢