我将不再使用的Fluent API添加到我的上下文中。
protected override void OnModelCreating(DbModelBuilder modelBuilder){
modelBuilder.Entity<MainClass>().HasOptional(a => a.simpleItems).WithOptionalDependent().WillCascadeOnDelete(true);
}
add-migration
导致了以下的迁移:
public override void Up()
{
DropForeignKey("dbo.SimpleItems", "MainClass_id", "dbo.MainClasses");
DropIndex("dbo.SimpleItems", new[] { "MainClass_id" });
RenameColumn(table: "dbo.MainClasses", name: "MainClass_id", newName: "simpleItems_id");
CreateIndex("dbo.MainClasses", "simpleItems_id");
AddForeignKey("dbo.MainClasses", "simpleItems_id", "dbo.SimpleItems", "id", cascadeDelete: true);
DropColumn("dbo.SimpleItems", "MainClass_id");
}
但我无法执行迁移。当我输入update-database -verbose
时,我得到了一个错误的错误:
参数@objname不明确或声称@objtype(COLUMN)错误。
我该如何解决?
P.S。使用详细信息我可以看到执行更新数据库时发生错误会创建以下行:
EXECUTE sp_rename @objname = N'dbo.MainClasses.MainClass_id', @newname = N'simpleItems_id', @objtype = N'COLUMN'
P.S。如果我从头开始删除所有迁移并启用新迁移,则会成功更新数据库。上面的迁移特别存在这个问题。