我只是在我的项目中遵循实体框架代码的第一种方法,而我陷入了一些问题。总是我被迫使用命令重新生成数据库。然而,现在我设法得到这个稳定。我有一个场景,在这个框架是创建一个迁移脚本是不合逻辑的,可能是我缺少的东西,需要你的帮助,实体框架 - 代码优先方法
该场景是 - 我已经启用迁移,并创建了一个InitialCreate所有我的表设置,我对此印象深刻。但是当我在实体做出改变,例如,我有新政类
我添加了名为LenderName,BorrowerName新的属性和运行TEH附加迁移脚本,它创建了一个迁移脚本对我来说,
public partial class LenderBorrowerName : DbMigration
{
public override void Up()
{
DropColumn("dbo.Deals", "LenderName");
DropColumn("dbo.Deals", "BorrowerName");
DropColumn("dbo.Deals", "Discriminator");
}
public override void Down()
{
AddColumn("dbo.Deals", "Discriminator", c => c.String(nullable: false, maxLength: 128));
AddColumn("dbo.Deals", "BorrowerName", c => c.String());
AddColumn("dbo.Deals", "LenderName", c => c.String());
}
}
问题是,原始数据库没有这个字段,并且通过这个迁移脚本,它假设添加到数据库中。要更新这些字段,如果我运行update-migration -force,由于它尝试从表中删除列,因此它会因上述up()函数而失败。为什么微软正在添加该drop脚本,是开发人员需要手动删除的?请帮忙